我想知道 rsync 在非守护程序模式下是如何工作的,它到底是什么?
从 rsync 手册页中,我了解了守护程序模式的工作原理。我对守护程序模式有所了解。守护进程是一个在后台持续监听连接的进程。
现在,场景是,我不想使用守护程序模式,因为它需要一些专用端口始终处于监听状态。
我想知道,非守护模式下的客户端(比如本地机器)如何在技术上调用服务器(比如远程机器)上的 rsync 监听器,反之亦然?这种方法的原因是,*我不希望客户端事先知道服务器的端口号*。任何详细的解释将不胜感激。
从 rsync 手册页:
rsync 有两种不同的方式联系远程系统:使用 remote-shell 程序作为传输(例如 ssh 或 rsh)或直接通过 TCP 联系 rsync 守护进程。
因此,在非守护程序模式下,您可以使用 ssh 连接和更新您的客户端。在这种情况下,通过 ssh 的初始连接将设置客户端,以便 rsync 可以在不知道端口号的情况下进行连接。
这回答了我的问题:
我发现它如何在非守护程序模式下调用远程 rsync。在本地:如果命令是:- rsync -avz -e ssh remoteuser@remotehost:/remote/dir /this/dir/ 此命令将在本地启动另一个进程:- ssh -l remoteuser 192.168.xx.xxx -vlogDtprze.iLsf 。/远程/目录
这个 ssh 命令在远程机器上调用 rsync为:rsync --server -vlogDtprze.iLsf。/远程/目录/
并以任意端口号开头。但是数据通信是通过 ssh 进行的(端口 22 需要打开)。
它通过 ssh 调用 rsync 在这种情况下您不需要运行守护进程