首先先估算Mysql和网站各自需要的备份空间,然后定出来多少时间删除旧的备份文件。
1、创建保存备份文件的路径/mysqldata
#mkdir /mysqldata
2、创建/usr/sbin/bakmysql文件
#vi /usr/sbin/bakmysql
#注意:`符号是TAB键上面的符号,不是ENTER左边的
#还有date后要有一个空格。
rq=`date +%Y%m%d`
tar zcvf /mysqldata/mysql$rq.tar.gz /var/lib/mysql
#删除60天以前的备份文件
find /mysqldata -atime +60 -name '*.tar.gz'-exec rm -f {} ';'
或者写成
rq=` date +%Y%m%d `
mysqldump –all-databases -u root -p密码 > /mysqldata/mysql$rq.sql
rm -f `find -ctime 60` /mysqldata
/var/lib/mysql是你数据库文件的目录,部分用户是/usr/local/mysql/data,每个人可能不同
/mysqldata/表示保存备份文件的目录,这个每个人也可以根据自己的要求来做。
3、修改文件属性,使其可执行
# chmod +x /usr/sbin/bakmysql
4、修改/etc/crontab
#vi /etc/crontab
在下面添加
01 3 * * * root /usr/sbin/bakmysql
表示每天3点钟执行备份
02 * * * * root /usr/sbin/bakmysql
表示每周1,5:02执行备份
02 5 * * 1 root /usr/sbin/bakmysql
每小时第二分钟备份一次
5、重新启动crond
# /etc/rc.d/init.d/crond restart
完成。
这样每天你在/mysqldata可以看到这样的文件
mysql20070929.tar.gz
直接下载即可。
参考文章1:
http://hi.baidu.com/hfr6666/blog/item/f20b71039f15da8fd53f7c29.html
参考文章2:
http://www.linuxforum.net/forum/showflat.php?Board=newbie&Number=222620
参考文章3:
http://www.chinaunix.net/jh/4/277682.html
补充:一个朋友给我的建议
creating backups with rsync is more reliable, faster and
stores the backup at a separate disk on a different place.
I have daily, weekly and monthly backups with rsync to two fysical
different locations with command like:
rsync -r rsync://*****.com/sqldata /backup/sqldata
可以参考:http://hi.baidu.com/52hack/blog/item/b7e9acc2a9d302130ff47737.html
Harrie
我是王岩,2010年为了扩展自己的事业,我成立了一家互联网公司:上海岩创网络科技有限公司,2011年加入宏路数据任技术总监,2017年成立动乂岩数据技术有限公司同时兼任动点科技CTO。现在我正在搭建团队,在微信生态和企业服务领域进行探索。我的联系方式是:手机:13918304704 微信: harriewang QQ:13689186 欢迎大家跟我交流和讨论。