使用rsync将Windows Server 2008 R2文件备份到Ubuntu,使用plink进行SSH

我正在尝试configurationrsync,将Windows Server 2008 R2上的文件备份到Ubuntu上。 所有(非testing)数据都必须encryption。

我已经成功地使用rsync工作,从端口873接收date,但我也有使用Plink的麻烦。

这是我的configuration:

Ubuntu的

rsyncd.conf:

log file = /var/log/rsync.log [ukwindb1backup] path = /home/ukwindb1/rsync comment = Backup uid = ukwindb1 gid = ukwindb1 use chrott = true read only = false auth users = ukwindb1 secrets file = /etc/rsyncd.secrets 

Rsync deamon已经启动了,并且有一个“ukwindb1”帐号,带有一个用于validation的SSH公钥。 所有的SSHstream量都在不同的端口上,而不是22。

存储在rsyncd.secrets文件中的“ukwindb1”的密码与Ubuntu帐户的密码不同(尽pipeSSHlogin时禁用密码)。

Windows服务器

我已经安装了cygwin,并设法让rsync工作,使用这个batch file:

 rsync.exe -qrtz --password-file=/home/Administrator/secret --delete "/cygdrive/c/Backups" ukwindb1@[removed-ip]::ukwindb1backup pause 

我也安装了Putty程序,并且希望使用plink连接到另一台服务器,以便我可以使用Pageant来pipe理密码。

我试过这个batch file,使用plink连接到SSH服务器,它工作正常:

 plink -ssh -P [removed-port] -l ukwindb1 -i C:\ukwindb1.ppk [removed-ip] pause 

现在,当我尝试将这两个文件放在一起时,失败了:

 rsync.exe -qrtz -e "plink -ssh -P [removed-port] -l ukwindb1 -i C:\ukwindb1.ppk [removed-ip]" --delete "/cygdrive/c/Backups" ukwindb1@[removed-ip]::ukwindb1backup pause 

有任何想法吗? 我究竟做错了什么?

此外:

我真的需要运行rsync守护进程吗?

我可以在服务器上从客户端指定一个目录,而不是“:: ukwindb1backup”吗?

我认为你可以完全跳过rsyncdplink ,重新安排你的架构(这将有其他的好处)。

我相信rsyncd守护进程实际上并不需要为了备份目的而运行基本的rsync。 rsync通常只是通过SSH连接到另一个盒子,在远端启动一个rsync实例,两个rsync通过ssh相互交谈 – rsyncd守护进程并没有涉及到。 rsyncd通常用于提供多个客户端(如镜像服务器)下载的内容。

在这个设置中,我假定接收备份的盒子(Ubuntu盒子)是更“可信的”系统(从安全的angular度来看)—不是因为它是Ubuntu,而是因为备份服务器自然必须保存多个敏感数据主机。 因此,我build议从Ubuntu盒启动rsync ,并设置密钥信任关系,以便它是相信Ubuntu盒的Windows盒,而不是相反。 这意味着在Cygwin下设置sshd ,并locking(使用基于主机的防火墙),以便只允许来自备份服务器的连接。

你可以简单地执行:

 rsync -qrtz windowsbox:/path/to/files /path/to/ubuntu/backups 

…还演示了如何指定服务端的目录。

作为下一个故障排除步骤,我会放弃尝试使用rsyncd ,临时rsyncd基于密钥的身份validation,就像您在之前的疑难解答中一样,只是使用基于密码的身份validation尝试简单的rsync(几个testing文件)。

一旦你的基本同步工作,你也想看看rsync--modify-window选项,这将忽略时间戳的小漂移,可能是由于Windows和Unix喜欢如何处理秒时间戳。 否则,可能会被跳过的文件会一遍又一遍地被复制。

我还强烈build议在完成debugging和testing解决scheme之前,先closures--delete选项。 一个错字,你可以删除远远超过你的意图。