目前企业备份中遇到这样一种情况,通常存储都是搭建在linux平台下的,但很多服务器,比如ERP,OA等又是跑在Windows环境下,因此,我们很难通过传统的scp,或者rsync的方式来实现备份。当然,你可以安装cygwin,但是我个人很不推荐这种做法。

假设你要备份D盘下的apps文件夹,排除文件夹中的exe和dll文件,和temp文件夹;你的linux备份存储的ip是192.168.1.218,你已在linux服务端搭建了ftp服务,用户名是user,密码是yourpasswd:

@echo off
set bak_date=%date:~0,4%-%date:~5,2%-%date:~8,2%
d:
"C:\Program Files\WinRAR\Rar.exe" a -ma -r -rr5 -hprarmima -x*.exe -x*.dll -x*\temp\ d:\%bak_date%apps "d:\apps\"
echo open 192.168.1.218>ftp.txt
echo user>>ftp.txt
echo yourpasswd>>ftp.txt
echo binary>>ftp.txt
echo lcd d:\>>ftp.txt
echo cd /backup>>ftp.txt
echo put %bak_date%apps.rar>>ftp.txt
echo bye>>ftp.txt
ftp -s:ftp.txt
del ftp.txt
del %bak_date%apps.rar
exit

解释下上面脚本,首先是定义日期变量,格式是2016-12-01这样的类型;

rar命令行参数,a是压缩,-r是递归,用于压缩文件夹用,-ma是采用的压缩格式是rar5格式,-r -rr5是创建5%的恢复信息,这对于很多重要数据有重要意义,-hp是加密rar文件。有较高的安全性,rar文件的密码是后面的字符“rarmima”,-x是排除文件类型或文件夹;压缩参数加完之后,是用所的文件夹为”2016-12-01apps.rar”类似这样的格式,最后面为要压缩的文件夹。上述命令纯属演示功能,大家可以根据实际需要添加参数,不用像上述命令中一样,添加的那么多。

接下来是配置ftp,我们把ftp的相关命令写入d盘的ftp.txt文件中,ftp.txt文件中,依次是ftp用户名、密码、传输模式(bin),如果要传输到ftp服务器的backup子文件夹,就cd /backup,put就是实际的上传。ftp -s:ftp.txt 执行此ftp任务,最后是删除ftp和已经备份好的压缩包。

把上面内容复制到一个txt文件中,重命名成backup.cmd,在windows计划任务中选定一个时间执行此脚本就可以了。

补充说明一点,实际上,RAR本身是支持日期参数的,使用方法是-ag[格式],不加格式的话,默认是YYYYMMDDHHMMSS类型,类似这样“20161201223648”这种,我们可以把我们的脚本这样改下:

@echo off
d:
"C:\Program Files\WinRAR\Rar.exe" a -agYYYY-MM-DD -v10m -ma -r -rr5 -hprarmima -x*.exe -x*.dll -x*\temp\ d:\apps- "d:\apps\"
echo open 192.168.1.218>ftp.txt
echo user>>ftp.txt
echo yourpasswd>>ftp.txt
echo binary>>ftp.txt
echo lcd d:\>>ftp.txt
echo cd /backup>>ftp.txt
echo prompt>>ftp.txt
echo mput apps-*.rar>>ftp.txt
echo bye>>ftp.txt
ftp -s:ftp.txt
del ftp.txt
del apps-*.rar
exit

这样生成的文件是“apps-2016-12-01.partX.rar”类型,-v是启用分卷压缩方式,后面直接跟每个卷的大小,此处是10MB,注意,10M是10m参数含义不一样,10m为1024进制的10MiB大小,10M为1000进制的10MB大小,希望大家不要搞混了,。

关于增量备份的使用:

很多人不知道,rar自带增量备份功能,通过使用-ac -ao功能,可以比较完美的实现增量备份功能。-ac是压缩完文件后,把文件的存档属性,就是a属性去除,-ao为只添加具有存档属性的文件。当新建文件或者修改文件时,原先没有存档属性a的文件,就会自动具有存档属性。

例如,对当前目录下的testdirforrar文件夹进行增量备份,压缩成test.rar文件,可以这样写。

c:\totalcmd\Utilities\RAR\Rar.exe a -ma -rr5 -r -ac -ao test testdirforrar

这样,通过rar自带的命令,我们就实现了简单的备份,这个比网上很多复杂的增加备份脚本方便多了。

Windows下通过RAR和FTP自动备份文件
Tagged on:             

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注