利用系统crontab来定时执行备份文件,按日期对备份结果进行保存,达到备份的目的。
1、创建保存备份文件的路径
#mkdir /opt/databack/mysql
2、创建备份脚本文件
#vi /usr/sbin/mysqlback.sh
输入
date=` date +%Y%m%d `
tar zcvf /opt/databack/mysql/mysql$date.tar.gz /var/lib/mysql
或者写成
date=` date +%Y%m%d `
mysqldump –all-databases -u root -p密码 > /opt/databack/mysql/mysql$rq.sql
/var/lib/mysql是你数据库文件的目录,部分用户是/usr/local/mysql/data,每个人可能不同
/opt/databack/mysql/表示保存备份文件的目录,这个每个人也可以根据自己的要求来做。
3、修改文件属性,使其可执行
# chmod +x /usr/sbin/mysqlbak.sh
4、修改/etc/crontab
#vi /etc/crontab
在下面添加
01 1 * * * root /usr/sbin/mysqlbak.sh
表示每天凌晨1点钟执行备份
5、重新启动crond
# /etc/rc.d/init.d/crond restart
完成。
这样每天你在/opt/databack/mysql/可以看到这样的文件
mysql20100301.tar.gz 或者是mysql20100301.sql
#生成备份文件名带当前日期
rq=` date +%Y%m%d `
#设定删除两日前备份文件名日期
rqdel=` date -d '2 days ago' +%Y%m%d `
#备份数据库
mysqldump -u用户名 -p密码 数据库名称 > /opt/DataBak/MyDataBAK$rq.sql
#删除两日前备份文件
rm -dfr /opt/DataBak/MyDataBAK$rqdel.sql
#ftp to other host bak
ftp -n<
open FTP的IP地址
user FTP用户名 FTP密码
binary
hash
#更改目录至FTP备份目录
cd /mysql/DataBak
# 更改目录至服务器备份目录
lcd /opt/DataBak
prompt
#上传备份当日文件
put MyDataBAK$rq.sql
#删除FTP上两日前备份文件
delete MyDataBAK$rqdel.sql
close
bye
!