프로그래밍/linux
[linux] mysql DB자동으로 백업 하기 crontab ,db백업 스크립트 사용
2hansoul
2023. 1. 10. 17:50
반응형
1.db백업 스크립트
#!/bin/sh
DT=`date '+%Y%m%d'`
BACK_DIR='/var/www/html/backup'
#BACKUP 디렉터리가 없을경우 디렉터리 생성
if [ ! -d ${BACK_DIR} ]
then
mkdir ${BACK_DIR}
fi
#BACKUP 디렉터리로 'test'라는 이름의 DB내용 백업 에러로그는 DB_BACK.log 라는 파일로 전송
mysqldump -uroot -ppassword test > ${BACK_DIR}/${DT}testDB_BACK.sql 2> /tmp/DB_BACK.log
#BACKUP 경로의 sql확장자 가진 파일중 5일이상 지난파일은 삭제
find ${BACK_DIR} -name '*.sql' -mtime +5 -exec rm -f {} \;
#now create cron script smth like this
#crontab -e
#30 07 * * * /backup/backup.sh 2>&1>> /backup/dump.log
#The above will dump the database every day at 07:30
~
자동으로 백업을 설정 해야 하기 때문에 db백업 스크립트를 작성 해준다
경로는 원하는 곳으로 설정하고 중요한 부분은 mysqldump 부분 이다 저 부분이 직접적으로 백업에 관여한다
2.crontab 설정
55 13 * * * /var/www/html/backup/backup.sh
# Edit this file to introduce tasks to be run by cron.
crontab -e 명령어 실행하면 뭘 입력 하는 창이 나올 탠데
크론에 관한 설명은 잘 나와 있는 곳이 많기 때문에
13시 55분에 해당 경로에 있는 1번 스크립트를 실행 한다 라고 생각하시면 됩니다
3.백업파일
13:55분에 백업 파일이 잘 생성이 되었다 백업 파일을 열어보면 많이 보면 sql문들이 보일탠데
원하는 부분은 copy-paste 하면 잘 들어간다
4.crontabe restart
systemctl restart crond
크론명령어 추가 하면 무조건 restart 해야 적용이 됩니다
반응형