Tip & Tech
리눅스 정기 백업(mysql 포함) 설정
witple [윗플]
2020. 12. 16. 15:28
- 디스크 여유공간 확인
# df -Th - 백업 폴더 생성 및 퍼미션 설정
# mkdir [백업데이터를 보관할 디렉토리명]
# chmod 700 [위에서 만든 디렉토리명] 백업 스크립트 작성 (압축백업, 누적 7일 기준)
# cd /root
# vi backup.sh
에디터가 열리면 하단 별색처리된 부분을 복사해서 붙여넣습니다. 단 "[내용]"은 자신에게 맞게 고쳐주세요.
#!/bin/bashtar -czpf [백업데이터를 보관할 디렉토리명].`date +%Y%m%d%H%M%S`.tgz [백업대상 디렉토리명] --exclude [백업대상에서 제외될 서브디렉토리 또는 파일명] 1>/dev/null 2>/dev/null
mysqldump --extended-insert=FALSE -u[DB user] -p[DB password] [DB name] > /var/www/html/backup/[DB name].`date +%Y%m%d%H%M%S`.sql
find /var/www/html/backup/ -type f -mtime +[7] | sort | xargs rm -f- 스크립트 퍼미션 설정 및 테스트
# chmod 700 backup.sh
# ./backup.sh
백업디렉토리에 제대로 백업파일이 생성되었는지 확인합니다.
디렉토리 : 디렉토리명.20201216121230.tgz
MySQL : [DB name].20201216121230.sql - 정기적인 실행 설정 (1회/1일, 새벽 4시)
# crontab -e
0 4 * * * /root/backup.sh 1>/dev/null 2>/dev/null
4번에서 백업명령어를 수동으로 실행했을 때 아무런 에러가 없어야 합니다.
5번의 반영은 자고 일어나서 결과를 확인해보세요~