我有一个脚本,我们在内部使用它来跟踪客户端名称,主机名和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)
答案 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
客户那里购买。