실습> rsync + 날짜별로 백업하기
-- 조건 --
1. 백업 디렉터리
- /backup/날짜/
+--- etc
|
+--- log
|
+--- home
- 날짜: 20220303
2. 스크립트 생성
- rsyncBackup.sh
3. 크론 등록
- 매일 새벽 04:20에 백업한다.
-- 조건 --
백업 디렉터리 초기화
# rm -rf /backup/*
1. 백업 스크립트 생성
/root/bin/rsyncBackup.sh 파일을 생성한다.
# cd
# mkdir bin; cd bin
# install /dev/null rsyncBackup.sh
# vi rsyncBackup.sh
-- rsyncBackup.sh --
#!/bin/sh
# 파일명: rsyncBackup.sh
# 프로그램 설명: rsync 서버 백업 스크립트
# 작성자: 리눅스마스터넷
# 버전: 2022030301
today=$(date +%Y%m%d)
rsyncServer="192.168.101.100"
backupDir="EVER_LOG EVER_ETC HOME"
# 날짜 디렉터리가 존재하지 않으면 생성한다.
if [ ! -d /backup/$today ]; then
mkdir -m 700 /backup/$today
fi
# rsync server 로 접속해서 백업한다.
for dir in $backupDir
do
echo ">>> $dir Directory Backup <<<"
if [ -x /usr/bin/rsync ]; then
rsync -az $rsyncServer::$dir /backup/$today/$dir
fi
done
-- rsyncBackup.sh --
# rsyncBackup.sh
>>> EVER_LOG Directory Backup <<<
>>> EVER_ETC Directory Backup <<<
>>> HOME Directory Backup <<<
# ls -R /backup
2. 크론 등록
시스템 크론 : /etc/crontab
사용자 크론 : crontab -e
백업을 자동화 하기 위해서 시스템 크론을 설정한다.
# vi /etc/crontab
-- /etc/crontab --
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
MAILTO=root
20 04 * * * root rsyncBackup.sh
-- /etc/crontab --
3. 시간 변경
시간을 새벽시간으로 변경해서 백업이 잘되는지 테스트한다.
# yum -y install rdate
# rdate -s time.bora.net
2022. 03. 03. (목) 16:52:21 KST
cron 데몬이 동작이 되었는지 확인한다.
# systemctl status crond
3.4 4:18 분으로 시간을 변경한다.
# date 03040418
2022. 03. 04. (금) 04:18:00 KST
4. 로그 모니터링
# tail -f /var/log/cron
:
:(생략)
Mar 4 04:20:01 web1 CROND[43850]: (root) CMD (rsyncBackup.sh)
5. 백업 디렉터리 확인
# yum -y install tree
# tree -L 2 /backup
/backup/
├── 20220303
│ ├── EVER_ETC
│ ├── EVER_LOG
│ └── HOME
└── 20220304
├── EVER_ETC
├── EVER_LOG
└── HOME
8 directories, 0 files
6. 시간 변경
백업이 잘 되면 원래의 시간으로 변경한다.
# rdate -s time.bora.net
# date
2022. 03. 03. (목) 16:59:56 KST
'Linux > 보안장비 운용' 카테고리의 다른 글
| rsync + ssh 백업 테스트 (0) | 2022.03.03 |
|---|---|
| rsync 데몬 중지 (0) | 2022.03.03 |
| rsync 디렉터리 추가하기 (0) | 2022.03.03 |
| rsync server/client 구성하기 (0) | 2022.03.03 |
| 백업 (1) | 2022.03.03 |