今天想说的是MySQL数据库备份,我们想要的是每天自动备份,并且还要定期删除一些备份,不要在服务器上占用很大空间。首先我们先看MySql的备份命令。
mysqldump -uadmin -p"123456" --databases houtai > d:/back3.sql
admin是用户名,123456是密码,houtai 是你想备份的数据库,然后back3.sql 是备份出来的文件。
这样我们可以在Linux利用crontab命令周期性的执行一个备份脚本,脚本里我们还可以对备份文件进行打包压缩,并按照时间命名压缩包,然后删除backup.sql备份文件,并且定期删除删除以前的压缩包,下边看一下这个简单的备份脚本。
#!/bin/bash
#Program:
# 备份数据库
#2015、09、16 xjd
mysqldump -uadmin -p"123456" --databases houtai > d:/back3.sql
tar cvfz $(date +%Y%m%d).tar.gz backup.sql;
rm -rf backup.sql;
rm -rf $(date -d "5 days ago" +%Y%m%d).tar.gz
首先是备份数据库出来一个backup.sql文件,然后用tar命令进行打包压缩,并按照时间命名,然后删除备份文件,最后删除五天前的备份,这只是一个简单例子,还可以根据自己的需求,进行修改添加功能。编写完脚本之后,我们还需要让脚本定期执行,我用的是crontab命令,crontab -e 进行编辑。
1 0 0 * * * backup.sh &> /dev/null
我们看到最后有一个&>/dev/null 这样一句,这句是为了防止出现“You have new mail in /var/spool/mail/root ”这样的错误,如果没有后边那句,那么每执行一次,linux就想把执行的结果以邮件的形式告诉你,当然如果你需要知道每次运行的结果,你可以配置一下,然后把结果发送到你的邮箱。
本文转自LuckyXue的个人博客