1. 백업디렉토리 생성 및 권한부여
# root에서
nnn@nnn-S5520UR:/$ mkdir /home/nnn/db_backup
nnn@nnn-S5520UR:/$ chmod 755 /home/nnn/db_backup
생성된 백업 폴더(db_backup)의 권한을 수정. 소유자는 읽기/쓰기/실행이 가능하고, 그 외에는 읽기/실행이 가능함.
2. 백업을 수행할 스크립트 파일 생성
# root에서
nnn@nnn-S5520UR:~/db_backup$ nano /home/nnn/db_backup/dbbackup.sh
3. 백업스크립트 작성
#!/bin/bash
# backup directory
BACKUP_DIR=$(echo /home/nnn/db_backup)
#echo BACKUP_DIR
# get backup file time and now time
DATE=$(date +"%Y-%m-%d")
#echo $DATE
# 7일전 날자정보 가지고 오기
PREDATE=$(date --date "7 days ago" +"%Y-%m-%d")
#echo $PREDATE
# backup run
mysqldump -uroot -p[패스워드] dddd > $BACKUP_DIR/${DATE}_dddd.sql
15 mysqldump -uroot -[패스워드] kkkk > $BACKUP_DIR/${DATE}_kkkk.sql
# 작성된지 7일이 지난것을 삭제하는 부분
#rm -Rf /home/nnn/db_backup/${PREDATE}_dddd.sql
#rm -Rf /home/nnn/db_backup/${PREDATE}_kkkk.sql
4. 자동실행(CRONTAB) & 실행등록확인
# crontab -e #작업 스케줄러 설정
#설정 후 crontal -l 명령어를 통해 예약된 작업 리스트 확인가능
# db_backup
# 매일 0시 0분 backup.sh 파일 실행
0 0 * * * /root/database_backup/backup.sh
# 30분 마다 실행
*/30 * * * * /root/database_backup/backup.sh
# 매주 월요일 새벽 2시에 실행
0 02 * * 1 /root/database_backup/backup.sh
# 매월 1일 새벽 1시에 실행
0 01 1 * * /root/database_backup/backup.sh
┬ ┬ ┬ ┬ ┬
│ │ │ │ └─ 요일 (0 - 6) (0:일요일, 1:월요일, …, 6:토요일)
│ │ │ └─ 월 (1 - 12 or jan, feb, mar, apr...)
│ │ └─일 (1 - 31)
│ └─ 시 (0 - 23)
└─ 분 (0 - 59)
5. crontab 재시작
nnn@nnn-S5520UR:~/db_backup$ service cron restart
==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ===
Authentication is required to restart 'cron.service'.
Authenticating as: nnn,,, (nnn)
Password: #비밀번호 입력
==== AUTHENTICATION COMPLETE ===
nnn@nnn-S5520UR:~/db_backup$
참조 : https://wildeveloperetrain.tistory.com/208