巧用命令行工具实现备份同步

巧用命令行小工具实现备份同步

同步软件试过不少,最后琢磨来琢磨去,还是选择自己用批处理写一个。简单分享一下思路:

1、假设现在要将家里的文件同步到办公室,首先要确定的是哪些文件(夹)需要同步,如下,创建一个列表文件:

backup.lst

D:/Software/favorutils/EssentialPIM/Database/lifesinger.epim
D:/Software/favorutils/EverNote/DataBases
D:/Software/favorutils/Firefox/Data/profile/bookmarks.html
D:/Software/favorutils/FlashFXP/Sites.dat
F:/Dnloads/!-= Sync =-!

还可以排除特定文件不参与同步:

exclude.lst

F:/Dnloads/!-= Sync =-!/backup.lst
F:/Dnloads/!-= Sync =-!/backup_to_office.cmd
F:/Dnloads/!-= Sync =-!/exclude.lst
F:/Dnloads/!-= Sync =-!/get_bakcup_to_home.cmd
F:/Dnloads/!-= Sync =-!/login.cfg

2、接着就可以用WinRAR中自带的命令行小工具rar.exe打包了:

rar a -x@exclude.lst “backup_to_office” @backup.lst

还可以给压缩包加上密码保护:

rar a -hpyourpassword -x@exclude.lst “backup_to_office” @backup.lst

3、打了包后,我这里采用ncftpput.exe这个强大的ftp小工具来上传:

ncftpput -f login.cfg /sync backup_to_office.rar

login.cfg文件是ftp登陆的相关信息:

host 10.10.10.10
user yourname
pass yourpassword

4、根据1-3,你应该已经创建好了backup.lst、exclude.lst和login.cfg文件,接着我们就可以开始写备份上传脚本了:

backup_to_office.cmd

@echo off
echo.
echo ^>^> start backup …

rar a -hpyourpassword -x@exclude.lst “backup_to_office” @backup.lst

echo.
echo ^>^> rar done.
echo.
echo ^>^> upload to ftp…
echo.

ncftpput -f login.cfg /sync backup_to_office.rar

echo.
echo ^>^> upload done.
echo.

IF %ERRORLEVEL% EQU 0 (
echo msgbox “Backup successfully.”, 64, “Sync Tips” > ok.vbs
wscript ok.vbs
) ELSE (
echo msgbox “Sorry, but backup failed.”, 64, “Sync Tips” > sorry.vbs
wscript sorry.vbs
)

del /F /Q “backup_to_office.rar” 1>nul 2>&1
del /F /Q “ok.vbs” 1>nul 2>&1
del /F /Q “sorry.vbs” 1>nul 2>&1

上面的脚本应该很容易看懂了,后半部分是根据%ERRORLEVEL%的值来判断是否成功并弹出提示框,如果想让脚本静默运行,将后半部分去掉或者改成echo到一个log文件里即可。

5、上面是备份上传,对应的是下载还原了,这就更简单了。下载我们用wget.exe,解压用unrar.exe,还原用copy、move之类的内部命令就可以了:

get_backup_to_home.cmd

@echo off
echo.
echo ^>^> start get backup …
echo.

wget ftp://yourname:yourpassword@10.10.10.10/sync/backup_to_home.rar

echo.
echo ^>^> get done.
echo.

echo.
echo ^>^> start to unrar …
echo.

unrar x -o+ -pyourpassword backup_to_home.rar

echo.
echo ^>^> unrar done.
echo.

IF %ERRORLEVEL% EQU 0 (
echo msgbox “Get successfully.”, 64, “Sync Tips” > ok.vbs
wscript ok.vbs
) ELSE (
echo msgbox “Sorry, but get failed.”, 64, “Sync Tips” > sorry.vbs
wscript sorry.vbs
)

del /F /Q “backup_to_home.rar” 1>nul 2>&1
del /F /Q “ok.vbs” 1>nul 2>&1
del /F /Q “sorry.vbs” 1>nul 2>&1

这里我只写了下载和解压部分,还原部分我习惯手动完成。

6、上面有了backup_to_office.cmd和get_bakcup_to_home.cmd,对应的,就可以在办公室电脑上创建backup_to_home.cmd和get_bakcup_to_office.cmd,想手动的,每次下班点击一下,回到家后再点击一下就可以了,想实现全自动同步功能的,只要把上面的脚本稍微改一改,然后加到定时任务里,就可以了。 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值