최초 작성일 : 2021-10-10 | 수정일 : 2021-10-15 | 조회수 : 781 |
MySQL Database를 백업하는 쉘 스크립트와 crontab을 이용해서 특정 시간에 주기적으로 쉘 스크립트를 실행 하도록하여 DB를 자동으로 백업하는 방법에 대해서 알아본다.
MySQL Database Dump 명령
$ mysqldump -u [user_id] -p[user_password] [DB_name] > [backup_file_name].sql
$ mysql -u [user_id] -p[user_password] [DB_name] < [backup_file_name].sql
db_backup.sh
#!/bin/bash
DATE=$(date +%Y%m%d)
BACKUP_DIR=/home/user/database_backup/
mysqldump -u abc -pabc123 > $BACKUP_DIR'backup_'$DATE.sql
find $BACKUP_DIR -ctime +3 -exec rm -f {} \;
아래와 같이 사용하여 현재 날짜를 알아낼 수 있다.
date 뒤에 띄어쓰기가 있는 것에 주의하자.
$ echo $(date +%Y%m%d)
20171118
mysqldump
명령을 이용하여 백업 파일을 생성한다.-ctime n
옵션은 파일의 퍼미션을 마지막으로 변경시킨 날짜를 기준으로 파일을 찾아낸다.
-exec command {} \;
옵션은 찾아낸 파일들을 대상으로 특정 명령을 수행한다.
find 명령어에 대해 아래 링크에 자세히 정리되어있다.
아래 포스트 링크에 crontab에 대해 자세히 설명되어 있다.
Linux crontab 이용하여 작업 명령 예약하기
$ crontab -e
...
00 04 * * * /home/user/db_backup.sh