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

Передача файлов в стиле Rsync без использования rsyncd или sshd на удаленном конце

Мне нужно перенести и затем обновить структуру каталогов с хоста Linux в моей сети на другой хост Linux в сети клиента. Мой единственный доступ к клиентской сети - через клиента Citrix. Я могу войти в систему через SSH, и я могу копировать файлы через SCP, но я не могу выполнять переадресацию портов между двумя сетями.

Очевидно, что в первый раз мне придется скопировать всю структуру каталогов в виде архива. Но после этого есть ли способ оптимизировать создание архива на основе списка структуры удаленных каталогов?

Может ли кто-нибудь порекомендовать инструмент командной строки unix, чтобы помочь с вышеуказанным?

Вы можете использовать инкрементные tar-архивы с gnu tar (но не bsd tar) поверх ssh для передачи только изменений. Первый tar будет уровня 0, затем уровня 1 ... Вам нужно сохранить файл snapshot.snar и ссылаться на него каждый раз, иначе он создаст новый уровень 0.

$ tar --listed-incremental snapshot.snar -cf - dir | ssh user@host "tar --listed-incremental=/dev/null -xf -"

если вы хотите использовать сжатие для ускорения передачи, вы можете добавить переключатель «z» или «j» к обеим командам tar.

Для этого вы можете использовать rsync + ssh (используя параметр rsync "-e").

Пример: rsync -avu -e 'ssh' /local/dir/appA user@host:remote_dir/

Вы можете просто rsync -av /local/dir/appA user@host:remote_dir/ - но rsync программа должна быть установлена ​​на стороне сервера.

Если там не установлен rsync, вы можете использовать:

mkdir /tmp/host
sshfs user@host:remote_dir/ /tmp/host/

а потом:

rsync -av /local/dir/appA/ /tmp/host/