为什么选择Automysqlbackup?
备份的重要性这里就不赘述了,为了保证网站长期可靠的运行,数据是摆在第一位的,所以第一个考虑的就是数据库的备份,出了任何问题可以快速的还原。针对网站的定位不同,备份的要求也不同,比如微博时时刻刻都有无尽的人在产生数据,那么备份就是一个可怕的工程,也只有这样大的公司才有人力去做。好在咱只要保证小站的苦心运营的数据能留下来,一天一次的备份就足够了,最好还能有一个可靠的地方长期保留每天的数据。这样就有两个需求,一个是本地备份,除了速度很快外在有问题时恢复也很方便缺点是空间有限,存储的备份版本有限,那么另一个需求就是为了满足无限的备份需求,这个时候gmail就出场了,这哥们太牛了,容量是不停的增长的,咱的数据压缩后每天也就增加几k的容量,目前远低于它的增长速度,所以邮件备份是不二的选择。而满足这些,又能提供丰富配置,并且使用简单而轻量级的莫过于仅仅是脚本的automysqlbackup了。
功能描述 Description AutoMySQLBackup with a basic configuration will create Daily, Weekly and Monthly backups of one or more of your MySQL databases from one or more of your MySQL servers.
Other Features include: - Email notification of backups (会有email通知) - Backup Compression and Encryption (使用压缩和加密) - Configurable backup rotation (保存的备份文件时间) - Incremental database backups (增量型备份)
1.下载AutoMySQLBackup
http://sourceforge.net/projects/automysqlbackup/
2.解压缩
把下载的automysqlbackup-v3.0_rc6.tar.gz文件拷贝到/usr/tmp下面
在/usr/local下面新建一个automysqlbackup文件夹,并进入这个文件夹
cd /usr/local
mkdir automysqlbackup
cd automysqlbackup
然后terminal解压缩一下。
tar -xzvf /usr/tmp/automysqlbackup-v3.0_rc6.tar.gz
3. 安装
安装一下,命令为
./install.sh
中途会有两个询问配置文件安装目录的地方,之间回车就好

安装完以后会有提示信息,告诉你如果不是当前用户下使用这个命令要怎么办
4.修改配置文件
我们要用到的是automysqlbackup.conf文件:
文件里有一些基本的配置信息,比如连接mysql server的用户名、密码、IP地址神马的。
1 | # Username to access the MySQL server e.g. dbuser |
继续,有个重要的配置,就是backup存放的地方咯!
1 | # Backup directory location e.g /backups |
往下看,还有你要配置的database的名称,当然可以精确到表名,也可以只指定到database的名称。或者干脆直接留空,不过留空的话会默认备份所有的数据库……这样磁盘可能会爆炸吧……
1 | # Databases to backup |
另外,还有配置weekly、monthly、daily之类的时间间隔的设置
1 | # Rotation Settings |
前两个都比较好理解,就是每个月或者每一周的什么时候进行自动备份,如果不想使用每周备份或者每月备份的话,相应的地方设置0即可。那么后面的rotation又是什么意思呢?其实就是日志保存的期限啦。
比如说CONFIG_rotation_weekly=35的意思就是说按周存储的备份最多保留35天。
再继续,可以配置发送邮件的一些配置,比如邮件地址啦、还有附件的内容啦。
1 | # What would you like to be mailed to you? |
5. 运行Automysqlbackup
要运行automysqlbackup之前呢,不要忘了先新建我们存放备份数据库文件的地方,即在配置文件中设定的“/var/backup/db”,现在我们来新建这个目录。
mkdir /var/backup
mkdir /var/backup/db
好了,现在我们可以run一下automysqlbackup了。命令是:
automysqlbackup /etc/automyslqbackup/automysqlbackup.conf
噔噔,怎么报错了呢?
1 | Parsed config file "/etc/automysqlbackup/automysqlbackup.conf" |
好吧,有事问Google。
sourceForge上果然也有人遇到过这个问题……,解答是
1 | Please set CONFIG_mailcontent='stdout' in your config file and try again from your console. |
大 意就是说在配置文件里面使用了发送email来报告error这个东东,但是你的机子上却没安装mutt这个程序,所以在检测配置的时候就发生了错误。解 决的方法是把报错改成“stdout”,不过如果改成“stdout”不就失去了我们发送报告到email 的本意了吗……so,我们安装一下mutt这个程序好了。
(PS:如果不使用发送邮件则不需要这个步骤)
5.1 安装mutt
命令是
apt-get install mutt
安装完了以后我们再重新run一下automysqlbackup。
6. 设定Cron Job
Cron 是一个可以让系统定时运行后台脚本的工具。
6.1 编写可执行脚本
我们在/usr/local/bin目录下编写一个要定时执行的脚本
1 | #!/bin/sh |
保存为backupscript.sh
然后改变其模式为root可以执行、读写的方式
chmod 744 /usr/local/bin/backupscript.sh
6.2 将可执行脚本加入定时任务中
先使用命令
crontab -l
看一下现在cron中的定时程序有哪些。
如果提示“no crontab for root”的话,说明root用户下现在还没有定时任务。我们可以新建一个文件,用来配置root用户下的定时任务。
vi root-conf
然后在vi中输入
0-59/10 * * * * /usr/local/bin/backupscript.sh
意思是每十分钟执行一下备份脚本程序(比较夸张啦,为了能在短时间内看到比较多备份的结果,一般都是设定某一天的一个时刻来执行)然后保存退出。
接着,使用命令
crontab -u root root-conf
来将刚才编辑的文件作为root下的定时任务列表文件。这样再键入crontab -l命令时,就可以查看到我们刚才设定的定时任务了。另外,使用crontab -e命令可以编辑我们的定时任务。具体的设定时间的方法可以看Kaixuan的这篇文章《Linux下使用crontab来执行定时任务计划》。
7.查看备份结果
我们进入备份的目录看一下有什么变化
cd /var/backup/db/daily
ls
Reference
How to do Painless MySQL Server Backups with AutoMySQLBackup
















