
Удаленный сервер представляет собой систему типа 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
, но получаю ту же ошибку, в которой говорится, rsync
что not 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,предварительно установленныйдвоичный. Теперь вы можете использовать точку монтирования, как если бы она находилась в глобальном пространстве имен pathname. Помните, что ${_}
переменная оболочки расширяется до последнего аргумента предыдущей команды.
rsync -a /ring/0/share/Archives_AudioVisuel/TEST \
${_}/ifs/par-nas01/data/MPP/ADN_Archives/Audiovisuels/
После завершения работы отмонтируйте FUSE (файловую систему в пространстве пользователя) с помощью fusermount
утилиты.
fusermount -u my_mountpoint
Боюсь, этот метод не поможет.полныйХотя использование эффективных алгоритмов Δ‑копирования rsync. Если вы синхронизируете видеоархивы, это не должно быть слишком критично, я полагаю.