场景:服务器上备份的数据库文件会定期删除,也有可能别的原因格式化掉,可能有各种风险,为了分散风险,做一个多处备份还是有必要的。
思路:服务器上每天备份sql文件;并且每个星期五删除7天以外的所有sql文件,并且把剩下的sql文件打包到可下载目录,打包前删除上一次打包文件;win上每个星期5 12点网服务器上get 备份文件;这样一次简单的备份就完成了;
以下是部分代码;
首先备份代码:
#!/bin/bashuser="user"pass="pass"cd /mnt/sqlBac/gosstechfilename=`date +%Y%m%d%H%M%S`mysqldump -u${user} -p${pass} --all-databases > $filename.sql
然后,定期删除打包代码;
#!/bin/bashfind /mnt/sqlBac/gosstech/ -type f -mtime +7 -exec rm -f {} \;rm -rf /home/wwwroot/gosstech/*;tar zcvf /home/wwwroot/gosstech/goss.tar.gz /mnt/sqlBac/gosstech/*
加入定时任务
30 3 * * * /shell/aback.sh>/dev/null 2>&140 3 * * 5 /shell/backdelete.sh>/dev/null 2>&1
service crond restart
以上完成Linux 服务器端准备工作;
win 上要做的工作;
由于对于dos命令不熟悉;
第一步:我让win支持了Linux命令;
第二步:安装wget工具;官网下载地址:http://www.interlog.com/~tcharron/wgetwin-1_5_3_1-binary.zip 把wget.exe 放入system32即可
第三步:书写定时任务;schtasks 此命令使用详细Blog 地址:http://www.cnblogs.com/visoeclipse/archive/2009/08/29/1556240.html
schtasks /create /tn "Back Gosstech" /tr D:\serverBack\gosstech.bat /sc daily /mo 7 /st 12:00:00
第四步:书写bat文件;
cd D:\serverBack\gosstech\d:wget http://112.74.91.60/gosstech/goss.tar.gz