如何 rsync 到没有 rsync 但有 SCP 工具的服务器

如何 rsync 到没有 rsync 但有 SCP 工具的服务器

远程服务器是类似 FreeBSD 的系统,但未安装 rsync:

$ ssh [email protected] which rsync scp
Password:
rsync not found
/usr/local/bin/scp
$ rsync -a /ring/0/share/Archives_AudioVisuel/TEST [email protected]:/ifs/par-nas01/data/MPP/ADN_Archives/Audiovisuels/
Password:
zsh:1: command not found: rsync
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: remote command not found (code 127) at io.c(226) [sender=3.1.2]
$

我尝试添加-e ssh,但收到同样的错误,提示rsyncnot found

如果我尝试添加--rsync-path=/usr/local/bin/scp但收到scp: illegal option -- -错误。

我该如何rsync对仅具有该工具的服务器执行操作scp

答案1

如果你无法在远程 FreeBSD 机器上安装软件,但可以在本地 Linux 机器上安装软件,你可以使用sshfs作为一种解决方法。

mkdir my_mountpoint
# The pathname (here just a slash) indicates the root of the mounted FS.
sshfs admin@remote_machine:/ $_

sshfs命令启动/usr/libexec/sftp-server命令在遥控器上FreeBSD 机器,预装二进制。现在,您可以使用挂载点,就像它在全局路径名命名空间中一样。请记住,${_}shell 变量会扩展为上一个命令的最后一个参数。

rsync -a /ring/0/share/Archives_AudioVisuel/TEST \
    ${_}/ifs/par-nas01/data/MPP/ADN_Archives/Audiovisuels/

完成后,使用该fusermount实用程序卸载 FUSE(用户空间中的文件系统)挂载。

fusermount -u my_mountpoint

恐怕这种方法不会满的不过,使用 rsync 的高效 Δ 复制算法。如果你正在同步视频档案,我想这应该不是太重要。

相关内容