线上服务器有几个账户表需要备份,内网服务器也没有多大空间,2T硬盘做其他备份也没有多少空间了。正好有一台windows server 2012,用来计算excel的,平时不怎么用。空间有500G,可以拿来使用。


线上linux服务器的rsync服务器已经配置好了


下载rsync windows客户端,free版本

https://www.itefix.net/content/cwrsync-free-edition


解压之后,将里面的cwRsync_5.5.0_x86_Free目录放到E:盘

重命名文件夹cwRsync

进入目录,创建3个文件夹backup,cmd,log

说明:

backup 存放备份文件

cmd bat脚本

log 日志文件

windows rsync同步线上备份文件_第1张图片

在cmd目录,新建一个rsync_bak.bat文件

内容如下:


echo "#############################" >> E:\cwRsync\log\rsync_bak_log.txt

echo 开始时间为: %date%_%time% >> E:\cwRsync\log\rsync_bak_log.txt


set bak_time=%date:~0,4%%date:~5,2%%date:~8,2%

cd /d E:\cwRsync\bin\ && rsync -vzrtopg --progress --password-file="./rsync.pas" [email protected]::dts_message/user_%bak_time%.sql "../../backup"


rem 注释:删除7天前的sql文件

forfiles /p "E:\cwRsync\backup" /s /m *.sql* /d -7 /c "cmd /c del @path"

dir /ad/b/s E:\cwRsync\backup\ |sort /r >E:\cwRsync\cmd\kill.txt

 For /f "tokens=*" %%i in (E:\cwRsync\cmd\kill.txt) DO rd "%%i"

 del E:\cwRsync\cmd\kill.txt


echo 完成时间为: %date%_%time% >> E:\cwRsync\log\rsync_bak_log.txt


然后定义任务计划执行,就可以了

注意选择红色方框部分

windows rsync同步线上备份文件_第2张图片


说明:

线上的sql文件格式如下:

user_20151203.sql

所以在bat文件里面定义了一个变量

set bak_time=%date:~0,4%%date:~5,2%%date:~8,2%

然后调用的时候

就是user_%bak_time%.sql