Когда и источник, и место назначения являются удаленными, rsync жалуется:
Источник и место назначения не могут быть одновременно удаленными.
Ошибка rsync: ошибка синтаксиса или использования ( code 1) в main.c (1156) [Receiver = 3.0.7]
Есть ли непреодолимое техническое препятствие для того, чтобы rsync делал это? Или это просто еще не реализованный случай? Кажется, относительно легко создать локальный буфер в памяти, который будет посредником при передаче между двумя пультами, сохраняя как хеши, так и данные.
РЕДАКТИРОВАТЬ
Поскольку люди вносят некоторые косвенные предложения, я опубликовал отдельный вопрос с подробным описанием моего конкретного варианта использования. На самом деле это две отдельные части, и я думаю, что было бы полезно знать эти конкретные детали для rsync
why not try and connect to the remote machine and start the transfer from there. If you are using ssh-keys you can use agent pass though to manage the authenticate for you.
ssh -A remotehostA rsync /remote/file/on/host/a remoteHostB:/destination/
This command will log you on the remoteHostA and run rsync from there.
Вы можете обойти это, смонтировав одну (или обе) удаленные файловые системы с помощью sshfs
. Затем rsync будет рассматривать его как локальный.
К сожалению, это приведет к значительному использованию полосы пропускания на машине, файловая система которой смонтирована с помощью sshfs
, поэтому я бы рекомендовал делать это только с машина, которая имеет большую пропускную способность между вами и третьей машиной.
Конечно, идеальное решение - это машины, которые общаются напрямую друг с другом. Я не могу придумать веской причины, почему бы им этого не делать.