상세 컨텐츠

본문 제목

[linux] mysql DB자동으로 백업 하기 crontab ,db백업 스크립트 사용

프로그래밍/linux

by 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 해야 적용이 됩니다 

ps 명령어로 돌아가는지 확인 해보는 센스

 

반응형

관련글 더보기

댓글 영역