Как использовать rsync для копирования файлов между двумя удаленными серверами на основе сервера localhost?

Нет, вы не правы. Bash ведет себя как задокументировано:

  • первый раздел применяется к интерактивным оболочкам входа в систему и к не -интерактивным оболочкам, запущенным с флагом --login;
  • Третий раздел применяется к не -интерактивным оболочкам, включая не -интерактивные оболочки входа в систему, не запущенные с флагом --login.

Оболочка может быть оболочкой входа без флага --login. Если вы посмотрите на /proc/$$/cmdlineиз оболочки Bash, запущенной SSH в системе Linux, вы увидите, что она была запущена как -bash— начальный дефис — это обычный способ запуска оболочки входа в систему, и он не охватывается первый раздел, если он окажется не -интерактивным.Однако, если по какой-то причине кому-то нужна не -интерактивная оболочка входа в систему, для ее получения обычно используется --login.

0
06.04.2020, 15:30
2 ответа

Я остановился на решении изhttps://unix.stackexchange.com/users/312074/eblock

с

scp -3 host1 host2
0
28.04.2021, 23:18

Насколько мне известно, rsync не поддерживает копирование с удаленного сервера на удаленный сервер.

Если вам нужна только простая копия файла, вы можете просто использовать scpс опцией -3, как указано @eblock

 

Если вам нужен rsync, вы можете смонтировать оба сервера в локальную папку с помощьюsshfs

sshfs user@server1:/path/on/server1 /local/path1
sshfs user@server2:/path/on/server2 /local/path2

А затем копировать файлы между локальными папками:

rsync -av /local/path1 /local/path2

Для демонтажа:

fusermount -u /local/path1
fusermount -u /local/path2

Хотя я не уверен в скорости/производительности sshfs.

0
28.04.2021, 23:18

Теги

Похожие вопросы