最近有需求把vps上某个备份文件夹自动同步到别的地方。虽然另一台linux服务器也做了同步,但终究文件本地没有备份心里不踏实,于是考虑自己的电脑在每天的第一次开机时执行一次同步。
rsync:
方案一:cwRsync
方案二:cygwin+源码编译
以上两种方法均可通过搜索引擎找到详细步骤,不详述
每天自动执行
最简单的方式是计划任务,不过我这里并没有用这种方法,而是将备份脚本加入到开机自启动中。这种方法存在一个问题,即如果一天多次开机,备份脚本会多次运行。虽然rsync并不会对服务器产生太大压力,但是服务器端备份间隔没有小于一天的,一天多次检查还是有些多余。
解决方案:
创建一个状态文件,内容为今天的日期。脚本运行后先检查该文件中的内容与今天的日期是否相同。若相同则不执行备份,若不同则执行备份,并在备份完成后将今日日期更新到脚本中。
@echo off echo VPS自动同步到本地.... set /p a=<D:\tools\vpsRsyncDate.conf if "%a%"== "%date%" ( echo 今日已同步,无需再次同步 pause ) else ( D: chdir D:\cygwin64\bin echo 开始同步xxx bash --login -i -c "(RSYNC 备份命令)" echo 完成同步xxxx echo %date%> D:\tools\vpsRsyncDate.conf pause )