使用我自己的远程shell进行rsync rsh

时间:2013-11-19 05:01:06

标签: ssh rsync

我有一个脚本,我们在内部使用它来跟踪客户端名称,主机名和SSH端口号。它位于/etc/clients.ssh

我的脚本名为“connect”(符号链接“c”)接受一个参数$ 1,即客户端名称。然后它使用该端口号在该主机名上打开与客户端的SSH会话。“C”也可以使用“-l username”作为远程用户名。

我想在rsync中使用它。 --rsh=COMMAND似乎是票,但我得到了

$ rsync -vvvvn -e 'c -l manager' abc:/tmp/
cmd=c -l manager machine=abc user=<NULL> path=/tmp/
cmd[0]=c cmd[1]=-l cmd[2]=manager cmd[3]=abc cmd[4]=rsync cmd[5]=--server cmd[6]=--sender cmd[7]=-vvvvnde.sf cmd[8]=. cmd[9]=/tmp/
opening connection using: c -l manager abc rsync --server --sender -vvvvnde.sf . /tmp/
note: iconv_open("UTF-8", "UTF-8") succeeded.
(Client) Protocol versions: remote=1886221359, negotiated=30
protocol version mismatch -- is your shell clean?
(see the rsync man page for an explanation)
[Receiver] _exit_cleanup(code=2, file=compat.c, line=174): entered
rsync error: protocol incompatibility (code 2) at compat.c(174) [Receiver=3.0.9]
[Receiver] _exit_cleanup(code=2, file=compat.c, line=174): about to call exit(2)

2 个答案:

答案 0 :(得分:2)

根据我的理解,您可以通过在.ssh/config为每个客户创建一个条目来替换您的客户。例如,一个名为&#34; foobar&#34;:

的条目
Host foobar
    HostName example.com #or IP address
    Port 980
    User test
    CheckHostIP no

可让您只需ssh foobar进入主机,并使用rsync -SomeParameters foobar:/path/to/copy /path/to/local/storage复制所需的文件。

答案 1 :(得分:0)

我已经删除了这个想法,并且刚从openssh的ssh客户那里购买。