首先先估算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


Avatar photo
Harrie

我是王岩,2010年为了扩展自己的事业,我成立了一家互联网公司:上海岩创网络科技有限公司,2011年加入宏路数据任技术总监,2017年成立动乂岩数据技术有限公司同时兼任动点科技CTO。现在我正在搭建团队,在微信生态和企业服务领域进行探索。我的联系方式是:手机:13918304704 微信: harriewang QQ:13689186 欢迎大家跟我交流和讨论。

所有文章