Если вы говорите, у вас есть scp
, тогда у вас также должно быть ssh
. scp
требуется ssh
для работы. Итак, я начну с оспаривания вашего предположения, что вы не можете использовать rsync поверх ssh. Если у вас есть scp
, то нет причин, по которым rsync
над ssh
не должен работать.
rsync
более ssh
- правильный ответ здесь. Это самый эффективный механизм синхронизации контента между двумя разными серверами. Но, полагаю, возможно, что кто-то, кто считает, что он знает, что он делает, но он этого не делает, взломал сервер, чтобы разрешить только услугу scp
, и блокировать ssh
сеансов. Вероятно, ошибочное представление о том, что это как-то улучшает безопасность. Это действительно не так, но это другая тема. Итак, что теперь ...
Ну, вы говорите, что у вас есть sftp
Доступ доступен. В этом случае следующим лучшим ответом будет пользовательский клиент sftp
. Изучите perl и используйте модуль Net::SFTP, чтобы написать собственный скрипт perl, для вашего конкретного требования, использовать SFTP для сравнения содержимого двух серверов и синхронизации их содержимого.
Net::SFTP
раскрывает основополагающий протокол SFTP таким образом, который позволяет писать пользовательские приложения, которые его используют. Вы будете использовать протокол SFTP для проверки содержимого каждого сервера, выяснить, что по-другому, а затем скопировать то, что нужно скопировать, чтобы обновить их содержимое.
Использование Net::SFTP
не будет таким эффективным, как использование rsync + ssh. С Net::SFTP
вы узнаете, какие файлы существуют на сервере, и размер каждого файла в байтах. Однако, если на обоих серверах есть файл с тем же именем и один и тот же счетчик байтов, вы действительно не знаете, идентичны ли они, не загружая каждый файл и не сравнивая их вручную. Конечно, вам придется это сделать. Это ключевое преимущество rsync+ssh
, что у вас нет эквивалента sftp
. Сервер rsync
работает вместе с клиентом rsync
, и они могут проверить, что содержимое файла идентично, с использованием контрольных сумм, без фактической передачи файла с одной стороны на другую. Невозможно избежать этого с sftp
в этом случае, но это будет лучшее, что вы сможете сделать.
Открыть ssh. Разрешить только rsync. Прибыль. –
scp и sftp оба требуют ssh, так почему вы не можете использовать ssh? Также - загляните в rsync, вы можете найти здесь уместное. – user239546