首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么`RSYNC_RSH`不起作用,但是‘--rsh`’却起作用?

为什么`RSYNC_RSH`不起作用,但是‘--rsh`’却起作用?
EN

Unix & Linux用户
提问于 2019-03-05 12:36:18
回答 1查看 1.9K关注 0票数 0

设置RSYNC_RSH不起作用,但--rsh选项是。为什么?

rsync正确地使用了--rsh选项:

代码语言:javascript
复制
$ rsync --rsh "echo" invalid invalid::invalid
rsync: server sent "invalid rsync --server --daemon ." rather than greeting
rsync error: error starting client-server protocol (code 5) at main.c(1657) [sender=3.1.3]

但我预计RSYNC_RSH也会起同样的作用,但事实并非如此:

代码语言:javascript
复制
$ RSYNC_RSH=echo rsync invalid invalid::invalid
rsync: getaddrinfo: invalid 873: Name or service not known
rsync error: error in socket IO (code 10) at clientserver.c(127) [sender=3.1.3]

我已经尝试过3.1.2-1+deb9u1和3.1.3-5.fc29.x86_64的rsync版本。

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2019-03-05 12:36:18

这是按设计工作的。

您使用的是rsync“守护进程”语法:hostname::module。当您将它与--rsh一起使用时,它使用远程shell (例如ssh)连接到服务器,然后使用rsyncd.conf。当不使用--rsh时,它会尝试在TCP端口873上建立到rsync服务器的未加密网络连接。

设置RSYNC_RSH不会导致rsync“守护进程”语法使用远程shell。

RSYNC_RSH是一个“环境变量”。它是为您的整个环境而设计的。当您不使用rsync“守护进程”语法时,它会更改远程shell rsync使用的内容。这在古代很有用,因为有几个不同的远程shell,所以rsync可能不知道您最常使用的是哪一个。

票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/504485

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档