备份工具:Duplicati

现在行形形色色的备份工具有很多,眼花缭乱,在网上找了很久,终于发现一款适合我的。我的需求其实不复杂,能自动备份、增量备份、同时保留多个备份,一些文件被修改了,如果没及时发现,可以去以前的备份找。

duplicati简介

duplicati是一款免费的、开源的备份软件,使用C#语言开发,支持Windows、Linux以及MacOS,可以把备份到远程服务器或者云计算平台上,比如Amazon S3、Google Drive、SkyDrive、Rackspace Cloud Files等。duplicati的备份维护机制也很完善,定时删除早期备份、备份的时候上传带宽的限制等等。

优点

速度快

备份前对数据进行了压缩和打包,可以自定义每个包的大小。在备份小文件,特别是图片、网页文件时特别有用。

安全性好

在对数据打包的时候,可以对数据进行AES-256加密,比原文件直接备份要安全很多。

灵活强大

支持FTP,SkyDrive,亚马逊S3等云存储,并且可以很灵活地根据需求来配置。

缺点

图形界面需用户登录

计划任务的执行需要登录,否则会挂起,等你再次登录的时候执行。不过下一个版本的duplicati将不再有这样的烦恼,从roadmap可以看到,duplicati 2.0将以系统服务的形式安装,支持后台运行。

命令行时暴露登录信息和加密密码

一般不会每天登到服务器上,如果要想让duplicati后台运行,我们只能使用命令行的方式,但是在命令行中,我们会暴露我们的登录信息和加密的密码,如果被不法分子拿到,等于白备份了。等duplicati 2.0发布,这个问题也将解决。

使用说明

图形界面使用

duplicati,备份工具,备份,工具 duplicati设置向导

duplicati,备份工具,备份,工具

输入备份的名称

duplicati,备份工具,备份,工具

可以直接备份"我的文档"目录或者选择自定义的备份目录,可以选择多个目录。

duplicati,备份工具,备份,工具

设置备份的AES-256加密密钥。

duplicati,备份工具,备份,工具

选择备份的存储地方,支持FTP、Google Drive、SkyDrive等等。

duplicati,备份工具,备份,工具

使用FTP备份的向导,输入FTP的登录信息等即可备份,官网上有其他存储地方的说明

duplicati,备份工具,备份,工具

高级设置,设置备份的频率、删除时间等。

duplicati,备份工具,备份,工具

设置任务计划备份。

duplicati,备份工具,备份,工具

设置删除过期备份。

duplicati,备份工具,备份,工具

完成备份向导。

命令行

duplicati的命令行功能很强大,备份、删除、还原都可以搞定。配合Windows的任务计划,可以搞定不登录情况下的备份。我这里介绍下简单的FTP备份和删除,详细的可以执行命令Duplicati.CommandLine help来查看。

备份

backup <source folder> <target url> <options>

--auto-cleanup 删除不属于备份的其他文件,或者备份过程中,出错了的不需要了的文件。

--full 做完整备份。如果没有定义,那么第一次做完整备份,后面做增量备份。

--full-if-older-than = <date> 到一定的时间后做完整备份。

--full-if-more-than-n-incrementals = <number> 在做n个增量备份后做完整备份。

--passphrase = <passphrase> 用来保护备份文件的密码。

--volsize = <size> 每个卷的大小,默认是10MB,如果备份文件比较大,可以把这个卷设置大一点。

删除

delete-all-but-n-full <number> <target url> 仅保留N个完整备份

delete-all-but-n <number> 仅保留N个备份

delete-older-than <date> <target url> 仅保留一定时间的备份

--force 当删除备份文件的时候,duplicati只会列出要删除的文件名,加了force这个参数,从会删除备份的文件。

FTP

--ftp-passive = true 定义使用被动模式

--ftp-password FTP登录密码

--ftp-username FTP用户名

命令行例子

把duplicati安装目录加到系统环境路径下之后,可以直接执行Duplicati.CommandLine命令。

备份例子

Duplicati.CommandLine backup "D:\source" "ftp://10.48.78.194/source" --ftp-username=ezloo --ftp-password=backup --full-if-more-than-n-incrementals=9 --auto-cleanup --passphrase=123456 --volsize=20MB >> d:\duplicati\logs.txt

删除例子

Duplicati.CommandLine delete-all-but-n 3 --force --ftp-username=ezloo --ftp-password=backup "ftp://10.48.78.194/source" --passphrase=123456 >> d:\duplicati\delete.txt

>> d:\duplicati\logs.txt 把日志写入到文件里面

使用注意事项

1、在备份的时候,如果duplicati发现source文件没发生任何变化,那么它是不会生成备份的。

2、在命令行删除过期备份的时候,需要提供密码。

3、当备份多个目录的时候,目录最后的"\"要删掉,正确的写法"C:\source1;D:\source2"。