定时自动备份mysql数据库并删除过期备份
在实际项目中,遇到有客户机房断电导致数据库数据丢失的问题,又因为备份容灾不及时,导致部分数据恢复不了。使用Linux的自动定时任务命令crontab对数据库进行定时备份可以减少这种情况发生。
新建备份文件并赋予可以执行的权限
mkdir -p /home/mysql_backup/
touch /home/mysql_backup/mysql_backup.sh
chmod 551 /home/mysql_backup/mysql_backup.sh
编辑/home/mysql_backup/mysql_backup.sh
vim /home/mysql_backup/mysql_backup.sh
写入以下内容
# Name:mysql_backup.sh # This is a ShellScript For Auto DB Backup and Delete old Backup #备份地址 backupdir=/home/mysql_backup #备份文件后缀时间 time=_` date +%Y_%m_%d_%H_%M_%S ` #需要备份的数据库名称 db_name=test #mysql 用户名 #db_user= #mysql 密码 #db_pass= #mysqldump命令使用绝对路径 mysqldump --all-databases -u $db_user -p$db_pass | gzip > $backupdir/$time.sql.gz #删除7天之前的备份文件 find $backupdir -name $db_name"*.sql.gz" -type f -mtime +7 -exec rm -rf {} \; > /dev/null 2>&1
编辑crontab
vim /etc/crontab
在最后一行加入
* */1 * * * root /home/mysql_backup/mysql_backup.sh
重启crontab
service crond restart