Когда и источник, и место назначения являются удаленными, rsync жалуется:
The source and destination cannot both be remote.
rsync error: syntax or usage error (code 1) at main.c(1156) [Receiver=3.0.7]
Есть ли непреодолимое техническое препятствие к тому, чтобы rsync делал это? Или это просто еще не реализованный случай? Кажется, относительно легко создать локальный буфер в памяти, который будет посредником при передаче между двумя пультами, сохраняя как хеши, так и данные.
РЕДАКТИРОВАТЬ
Поскольку люди вносят несколько косвенных предложений, я опубликовал отдельный вопрос подробно описывая мой конкретный вариант использования. На самом деле это два отдельных элемента, и я думаю, что было бы полезно знать эти детали для rsync.
почему бы не попробовать подключиться к удаленному компьютеру и начать передачу оттуда. Если вы используете ssh-ключи, вы можете использовать проход агента, чтобы управлять аутентификацией за вас.
ssh -A remotehostA rsync /remote/file/on/host/a remoteHostB:/destination/
Эта команда зарегистрирует вас на remoteHostA и запустит оттуда rsync.
scp -3r <remote src> <remote dest>
нет проблем с этим.
Вы можете обойти это, смонтировав одну (или обе) удаленные файловые системы с помощью sshfs
. Затем rsync будет обрабатывать его, как если бы он был локальным.
К сожалению, это приведет к большому использованию полосы пропускания на машине, файловая система которой смонтирована с sshfs
, поэтому я бы рекомендовал делать это только с машиной, которая имеет большую пропускную способность между вами и третьей машиной.
Конечно, идеальное решение - машины напрямую разговаривать друг с другом. Я не могу придумать ни одного хорошо причина, почему они не должны.