基本上我问的是,有没有人遇到了一种方法,在rsh内包装rsync。
使用OpenSSH v4.9 + sftp有一些很好的选项,可以让你连接到连接等,这是一个解决scheme,但是我一直用RHEL,而RHEL4或者RHEL5都不是那个版本的SSH。
我目前的解决scheme是使用客户端用户的密钥添加类似这样的服务器端…
server%cat〜/ .ssh / authorized_keys command =“cd / srv / rsync / etl && tar --exclude'./lost+found'-pcf - ./”ssh-rsa ...
…所以客户将被限制在一件事情,一件事情…
客户端%ssh -T -i $ {HOME} /。ssh / id_rsa [email protected]> sensative.tar
这保证了连接以及服务器(来自客户端)的安全,但是效率低下,因为所有的文件都会一遍又一遍地被检索。
我在使用rsync做类似的(或更好的)之后。
Rsync支持使用ssh作为传输
rsync -az /path/to/source username@host:/path/to/destination
一些旧版本的rsync需要你明确指定ssh
rsync -aze ssh /path/to/source host:/path/to/destination
使用rsync的替代方法是BC Pierce的Unison ,它具有与rsync类似的function,但在两端保留一个本地索引,以避免必须通过文件系统来计算增量
好吧,我终于明白了这一点,但是解决scheme并不像我所希望的那样优雅。
一个服务器端,你需要添加下面的相关用户的authorized_keys文件…
no-pty, command="exit"
在客户端,你可以创build一个隧道如下…
ssh -l username -fNTL 8073:server:873
一旦build立了隧道,就可以像往常一样使用rsync – 使用双冒号语法是不可能的 – localhost。
您select的本地主机端口号(8073)显然是完全可选的,只要记住,这就是你必须rsync …
rsync --port=8073 -a user@localhost::mySecureStore /srv/some/place/
您可能对守护进程ssh模式感兴趣,这是这个问题的主题:
无法使rsync在守护进程ssh模式下工作