구글링을 통해 알아낸 방법들을 정리하고 이해한대로 기록함. 틀릴 수도 있음.
# mkdir backup // 파일명
# chmod 755 backup // 7-소유자는 읽기,쓰기,실행 가능 / 5 - 그 외 사용자는 읽기,실행만 가능
# vi /root/backup.sh // root 폴더에 backup.sh 라는 파일을 생성하여 편집모드로 실행
insert 모드로 변경하여 스크립트 작성
#!/bin/sh
NOW=`date +"%Y%m%d"`
DELDAY=`date --date '5 days ago' +"%Y%m%d"`
tar zcvfp /home/backup/example_bak_${NOW}.tar.gz /home/target/
/usr/bin/mysqldump -u계정 -p비밀번호 DB명 > /home/backup/example_db_baK_${NOW}.sql
chown root.root /home/backup/example_${NOW}.tar.gz
chown root.root /home/backup/example_db_bak_${NOW}.sql
chmod 755 /home/backup/example_bak_${NOW}.tar.gz
chmod 755 /home/backup/example_db_bak_${NOW}.sql
rm -Rf /home/backup/example_db_bak_${DELDAY}.sql
rm -Rf /home/backup/example_bak_${DELDAY}.tar.gz
#스크립트 내에서 사용할 변수
# 파일명에 붙여서 백업날짜를 표시할거임
NOW=`date +"%Y%m%d"` #현재날짜
DELDAY=`date --date '5 days ago' +"%Y%m%d"` #현재날짜로부터 5일전
#백업대상
tar zcvfp /home/backup/example_bak_${NOW}.tar.gz /home/target/
# tar zcvfp /home/... : 저장할 경로와 파일명
# /home/target : 압축하여 저장할 대상 파일이 있는 경로
# 백업할 DB :: DB 접속 할때 사용하는 계정과 비밀번호, 백업할 DB명 > 백업파일 저장할 경로와 저장명
/usr/bin/mysqldump -u계정 -p비밀번호 DB명 > /home/backup/example_db_baK_${NOW}.sql
#권한설정
#소유권설정
chown root.root /home/backup/example_${NOW}.tar.gz
chown root.root /home/backup/example_db_bak_${NOW}.sql
# 읽기, 쓰기, 실행 권한 7-소유자만 모든 행동 가능, 5- 그 외 사용자는 읽기, 실행만 가능
chmod 755 /home/backup/example_bak_${NOW}.tar.gz
chmod 755 /home/backup/example_db_bak_${NOW}.sql
#삭제
# 5일전 백업파일은 삭제
rm -Rf /home/backup/example_db_bak_${DELDAY}.sql
rm -Rf /home/backup/example_bak_${DELDAY}.tar.gz
스크립트 작성 후에 실행권한만 부여
# chmod 100 /root/bakcup.sh
백업 스크립트를 언제 실행시킬지 시간을 정해주는 설정창
#crontab -e // 설정화면으로 이동
GNU nano 4.8 을 사용 중이라 아래와 같은 화면이 출력되었다.
지워도 무방한 내용인듯....
별도의 단축키 입력없이 가장 윗줄부터 작성이 가능하다.
# * * * * *
# 분(0-59) 시간(0-23) 일(1-31) 월(1-12) 요일(0-7)
* * * * * /home/backup.sh
## example
# 매주 일요일 오전 2시 00분에 /home/backup.sh 실행
0 2 * * 0 /home/test.sh
# 매일 오전 2시, 오후 2시에 /home/backup.sh 실행
0 2,14 * * * /home/backup.sh
# 매 10분마다 /home/backup.sh 실행
*/10 * * * * /home/backup.sh
# 매일 자정 0분부터 30분까지 /home/backup.sh 실행
0-13 0 * * * /home/backup.sh
crontab 내부에서 위와 같은 형식으로 작성하여 저장하면 자동백업이 시작되는데
설정 후 아래 명령어로 cron을 재시작해야함.
# service cron restart
백업파일이 있는 폴더에서 cmd 열고 (cmd .) 명령어 입력
tar -zxvf [압출파일이름]