Двухместный ssh
Даже в вашем сложном случае вы можете управлять передачей файлов с помощью одной командной строки, просто набрав ssh
; -)
И это полезно, если remote1
не может подключиться к localhost
:
ssh user1@remote1 'ssh user2@remote2 "cat file"' > file
tar
Но вы теряете свойства файла (право собственности, права доступа ...).
Однако, tar
ваш друг, чтобы сохранить следующие свойства файла:
ssh user1@remote1 'ssh user2@remote2 "cd path2; tar c file"' | tar x
Вы также можете сжать, чтобы уменьшить пропускную способность сети:
ssh user1@remote1 'ssh user2@remote2 "cd path2; tar cj file"' | tar xj
И tar
также позволяет передавать рекурсивный каталог через базовый ssh
:
ssh user1@remote1 'ssh user2@remote2 "cd path2; tar cj ."' | tar xj
ionice
Если файл огромного размера и вы не хотите мешать другим важным сетевым приложениям, вы можете пропустить ограничение пропускной способности сети , предоставляемое инструментами scp
и rsync
(например, scp -l 1024 user@remote:file
не использует более 1 Мбит / с).
Но обходной путь использует ionice
, чтобы сохранить одну командную строку:
ionice -c2 -n7 ssh u1@remote1 'ionice -c2 -n7 ssh u2@remote2 "cat file"' > file
Примечание: ionice
может быть недоступно в старых дистрибутивах.