Назад | Перейти на главную страницу

Почему нельзя использовать два пульта дистанционного управления для rsync?

Когда и источник, и место назначения являются удаленными, 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, поэтому я бы рекомендовал делать это только с машиной, которая имеет большую пропускную способность между вами и третьей машиной.

Конечно, идеальное решение - машины напрямую разговаривать друг с другом. Я не могу придумать ни одного хорошо причина, почему они не должны.