Это команда, которую я использовал для запуска с моего компьютера SOURCE

rsync -Rrlt --progress --delay-updates ./my_folder root@machine-on-same-network:/home/me/.

Теперь мне нужно скопировать эту же папку на компьютер TARGET, который находится в Интернете.

Однако моя машина SOURCE не имеет доступа к Интернету, и эта машина SOURCE может подключаться через SSH к машине, которая имеет доступ к Интернету.

Есть ли способ сделать это?

1 ответ1

2

Да, это возможно сделать. Веб-сайт rsync явно перечисляет пять различных способов сделать это. Они заявляют в верхней части страницы:

Если у вас есть установка, в которой нет возможности напрямую соединить две системы для передачи rsync, есть несколько способов заставить систему брандмауэра выступать в качестве посредника в передаче.

Я считаю, что второй способ особенно прост: измените файл ~/.ssh/config на исходном компьютере, добавив в него следующие строки:

 Host target
   ProxyCommand nohup ssh middle nc -w1 %h %p
   User target_user

Здесь target - это ПК-получатель, где вы - target_user, а middle - это ПК, выступающий в качестве промежуточного звена . nc, очевидно, является netcat, nohup подавляет раздражающее предупреждение, -w1 выключает работающий экземпляр netcat, *% p% использует порт по умолчанию.

После этого команда для резервного копирования становится:

 rsync -Rrlt /src/ target:/dest/

Если по какой-либо причине вы хотите более подробно обсудить эти методы, вам стоит обратиться к этой странице блога.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .