安装了 Rsync 但仍然收到错误命令未找到

Mor*_*eus 7 linux rsync macos

我正在尝试使用非标准端口将本地文件夹同步到远程服务器,我的 rsync 命令如下:

rsync -avz ~/Research/Folder1/folder2 -e "ssh -p 3345" reusr@yyy.xxx.xx.xxx:/home/reusr/folder1/folder2
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

bash: rsync: command not found
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: error in rsync protocol data stream (code 12) at io.c(226) [sender=3.1.3]
Run Code Online (Sandbox Code Playgroud)

当我跑步时,rsync --version我得到

rsync  version 3.1.3  protocol version 31
Run Code Online (Sandbox Code Playgroud)

我不确定为什么command not found会发生该错误或后续错误。

我使用 OSX Maojave 作为我的本地机器,使用 Debian 服务器作为我的远程机器。

Sta*_*Cat 11

您的本地 rsync 需要从远程服务器上的 SSH 启动远程 rsync,但无法找到它,因为它可能不在其路径中。

这就是“找不到命令”错误的来源(即,这表示您的本地 rsync 无法从远程机器上的 SSH 会话中找到远程 rsync 可执行文件)。

您需要找出远程服务器上 rsync 的路径并将该部分作为您的 rsync 参数。您需要添加的参数是:

--rsync-path=/path/to/remote/rsync
Run Code Online (Sandbox Code Playgroud)

其中 /path/to/remote/rsync 是 rsync 命令在远程服务器上的位置。由于您的远程 rsync 服务器在 Debian 上运行,这可能是 /usr/bin/rsync

所以你的 rsync 命令变成:

rsync -avz ~/Research/Folder1/folder2 -e "ssh -p 3345" --rsync-path=/path/to/remote/rsync reusr@yyy.xxx.xx.xxx:/home/reusr/folder1/folder2
Run Code Online (Sandbox Code Playgroud)