我正在尝试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”吗?
我认为你可以完全跳过rsyncd和plink ,重新安排你的架构(这将有其他的好处)。
我相信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选项。 一个错字,你可以删除远远超过你的意图。