利用shell脚本自动备份Mysql数据库

购买VPS建立这个博客之后,便要考虑备份的问题,首先就是Mysql数据库的备份,可以用这行命令备份数据库:

/usr/local/mysql/bin/mysqldump -uUSER -pPASSWORD --database DBNAME > backup.sql


很有可能要备份多个数据库,就可以用编写一个shell脚本:

#!/bin/bash
#要备份的数据库名,多个数据库用空格分开
databases=(database1 database2 database3)
#备份文件要保存的目录
basepath='/root/backup/lveyo.com/mysql/'
#循环databases数组
for db in ${databases[*]}
do
#备份数据库生成SQL文件
/bin/nice -n 19 /usr/local/mysql/bin/mysqldump -uROOTUSER -pPASSWORD --database $db > $basepath$db-$(date +%Y%m%d).sql
#将生成的SQL文件压缩
/bin/nice -n 19 tar zPcf $basepath$db-$(date +%Y%m%d).sql.tar.gz $basepath$db-$(date +%Y%m%d).sql
#删除7天之前的备份数据
rm -rf $basepath$db-$(date +%Y%m%d -d "7 days ago").sql.tar.gz
done
#删除生成的SQL文件
rm -rf $basepath/*.sql


利用这个脚本就可以备份多个Mysql数据库了。

利用Linux的Crontab建立计划任务,自动运行这个脚本,就可以实现数据库定时自动备份了。
运行

crontab -e

有可能会提示找不到vi程序而不能编辑,此时需要运行

yum install vim-minimal

安装好vi之后,就可以进入crontab的编辑页,设置每天凌晨4点的时候自动运行。

0 4 * * * /backup_script/auto_mysql_backup.sh

也可以根据自己VPS的情况设置自动运行的时间。

评论

此博客中的热门博文

SSH代理使用说明

BuyVM黑掉了

PhotonVPS的Xen VPS性能