Scenario>
회사 업무에서 /home/* 백업 스크립트를 정기적으로 사용해야된다.
이에 스케쥴러에 등록을 한다.
1. 폴더 생성
[root@system1 ~]# mkdir -p /backup
[root@system1 ~]# mkdir -p /root/bin
- /backup : /home/* 백업을 저장
- /root/bin : 백업 sh 파일 저장
2. 백업 스크립트 작성
[root@system1 ~]# vi /root/bin/backup.sh
3. 1차 Test
#!/bin/bash
cd /home
tar cvzf /backup/home_`date +%m%d_%H%M%S`.tar.gz .
4. 실행 퍼미션 부여
[root@system1 ~]# chmod 755 /root/bin/backup.sh
-rwxr-xr-x. 1 root root 445 9월 7 17:56 backup.sh*
5. 실행 테스트
[root@system1 ~/bin]# /root/bin/backup.sh
./
./ferdora/
./ferdora/.mozilla/
./ferdora/.mozilla/extensions/
./ferdora/.mozilla/plugins/
./ferdora/.bash_logout
./ferdora/.bash_profile
./ferdora/.bashrc
./FEDORA/
./FEDORA/.mozilla/
./FEDORA/.mozilla/extensions/
./FEDORA/.mozilla/plugins/
./FEDORA/.bash_logout
./FEDORA/.bash_profile
./FEDORA/.bashrc
./FEDORA/.cache/
./FEDORA/.cache/abrt/
./FEDORA/.cache/abrt/lastnotification
./FEDORA/.config/
./FEDORA/.config/abrt/
./FEDORA/.bash_history
./user01/
./user01/.mozilla/
./user01/.mozilla/extensions/
./user01/.mozilla/plugins/
./user01/.bash_logout
./user01/.bash_profile
./user01/.bashrc
./user01/.cache/
./user01/.cache/abrt/
./user01/.cache/abrt/lastnotification
./user01/.config/
./user01/.config/abrt/
./user01/.bash_history
./user01/file.tar
./user01/dir1/
./user01/dir1/file2
./user01/dir1/file1
./user01/.viminfo
./user02/
./user02/.mozilla/
./user02/.mozilla/extensions/
./user02/.mozilla/plugins/
./user02/.bash_logout
./user02/.bash_profile
./user02/.bashrc
./user02/.cache/
./user02/.cache/abrt/
./user02/.cache/abrt/lastnotification
./user02/.config/
./user02/.config/abrt/
./user02/.bash_history
6. 백업 확인
[root@system1 ~/bin]# cd /backup
[root@system1 /backup]# ls -l
-rw-r--r--. 1 root root 3.0K 9월 8 11:36 home_0908_113625.tar.gz
7. 백업 내용을 출력하지 않게 스크립트 수정(로그파일생성)
#!/bin/bash
cd /home
tar cvzf /backup/home_`date +%m%d_%H%M%S`.tar.gz . >/dev/null 2>&1
if [ $? -eq 0 ] ; then
echo "[ OK ] : Backup Success." >> /var/log/backup.log
else
echo "[ FAIL ] : Backup Failed." >> /var/log/backup.log
fi
8. 로그파일 생성 확인
[root@system1 /backup]# /root/bin/backup.sh
9. 로그 파일 확인
[root@system1 /backup]# cat /var/log/backup.log
[ OK ] : Backup Success.
10. 로그 파일에 시간 첨부
#!/bin/bash
echo "---------- Backup Start: $(date) ----------" >> /var/log/backup.log
cd /home
tar cvzf /backup/home_`date +%m%d_%H%M%S`.tar.gz . >/dev/null 2>&1
if [ $? -eq 0 ] ; then
echo "[ OK ] : Backup Success." >> /var/log/backup.log
else
echo "[ FAIL ] : Backup Failed." >> /var/log/backup.log
fi
echo "---------- Backup End: $(date) ----------" >> /var/log/backup.log
11. 로그 파일 확인
[root@system1 /backup]# cat /var/log/backup.log
--------- Backup Start: 2019. 09. 08. (일) 11:47:44 KST ----------
[ OK ] : Backup Success.
--------- Backup End: 2019. 09. 08. (일) 11:47:44 KST -----------
12. 로그 파일 위치 변수 지정(추후 로그 파일 위치 변경 관리)
#!/bin/bash
LOG=/var/log/backup.log
echo "---------- Backup Start: $(date) ----------" >> $LOG
cd /home
tar cvzf /backup/home_`date +%m%d_%H%M%S`.tar.gz . >/dev/null 2>&1
if [ $? -eq 0 ] ; then
echo "[ OK ] : Backup Success." >> $LOG
else
echo "[ FAIL ] : Backup Failed." >> $LOG
fi
echo "---------- Backup End: $(date) ----------" >> $LOG
echo >> $LOG
13. 로그 파일 확인
[root@system1 /backup]# cat /var/log/backup.log
-------- Backup Start: 2019. 09. 08. (일) 11:51:07 KST -----------
[ OK ] : Backup Success.
--------- Backup End: 2019. 09. 08. (일) 11:51:07 KST -----------
14. 스케줄러에 지정
[root@system1 /backup]# crontab -e
15. 스크립트 작성
* * * * * /root/bin/backup.sh
16. 최종 확인
[root@system1 /backup]# ls -l /backup
[root@system1 /backup]# ls -l /var/log
'CentOS > Scenario' 카테고리의 다른 글
[Script]ipmitool Server 점검 Shell script (0) | 2023.02.25 |
---|---|
[Linux]암호 기억 갯수 변경 방법(SUSE Linux/Photon OS/CentOS) (1) | 2022.07.20 |
Scenario>보안 해제 작업(firewall / SELinux 해제) (0) | 2019.09.23 |
Scenario>GUI Mode에서 CLI Mode로 변경(GUI -> CLI) (0) | 2019.09.23 |
Scenario>CLI Mode에서 GUI Mode로 변경(CLI -> GUI) (0) | 2019.09.23 |