SLiPP 서버를 D2의 지원을 받아 서버를 이전했다. 이전하면서 DB Backup을 자동화하려고 찾아봤더니 유용하게 쓸 수 있는 자료가 있어 공유한다.
Linux shell script for database backup
위 링크에 포함되어 있는 shell script 예제는 다음과 같다. 앞으로 shell script 만드는데 많은 도움이 되겠다.
#!/bin/sh
now="$(date +'%d_%m_%Y_%H_%M_%S')"
filename="db_backup_$now".gz
backupfolder="/var/www/vhosts/example.com/httpdocs/backups"
fullpathbackupfile="$backupfolder/$filename"
logfile="$backupfolder/"backup_log_"$(date +'%Y_%m')".txt
echo "mysqldump started at $(date +'%d-%m-%Y %H:%M:%S')" >> "$logfile"
mysqldump --user=mydbuser --password=mypass --default-character-set=utf8 mydatabase | gzip > "$fullpathbackupfile"
echo "mysqldump finished at $(date +'%d-%m-%Y %H:%M:%S')" >> "$logfile"
chown myuser "$fullpathbackupfile"
chown myuser "$logfile"
echo "file permission changed" >> "$logfile"
find "$backupfolder" -name db_backup_* -mtime +8 -exec rm {} \;
echo "old files deleted" >> "$logfile"
echo "operation finished at $(date +'%d-%m-%Y %H:%M:%S')" >> "$logfile"
echo "*****************" >> "$logfile"
exit 0
1개의 의견 from SLiPP
안녕하세요. mysqldump 같은 경우에 online-backup(핫백업) 이 아닌 coldbackup 을 해야되서 저같은경우는 핫백업이 가능한 xtrabackup 을 이용합니다.
그다음에 위에 스크립트 파일을 crontab 에 등록해줍니다. 보통 트래픽이 가장적은 4시쯤.
의견을 남기기 위해서는 SLiPP 계정이 필요합니다.
안심하세요! 회원가입/로그인 후에도 작성하시던 내용은 안전하게 보존됩니다.
SLiPP 계정으로 로그인하세요.
또는, SNS 계정으로 로그인하세요.