SSH tar и перейти на другой сервер - PullRequest
0 голосов
/ 14 сентября 2018

Я использую компьютер Windows. Я пытался использовать SSH в командной строке, чтобы скопировать (zip) папку на моем сервере, а затем перенести ее на другой сервер.

Что я сделал, это:

ssh 188.166.177.20 username@hello1@3  tar latest - /var/www/foldertotar > 226.169.204.155 latest.tgz

Но этот не сработал. Я в основном установил там свой пароль и имя пользователя, включая сервер, но он не работал.

Хотите знать, что пошло не так?

1 Ответ

0 голосов
/ 14 сентября 2018

Вам нужно запустить ssh дважды; один раз для запуска tar на одном сервере и еще раз для подключения к другому серверу. Соедините их с помощью канала, чтобы вывод tar шел на другой сервер.

ssh 188.166.177.20 'tar czf - latest' | ssh 226.169.204.155 'cat > latest.tgz'

tar czf - записывает сжатый архив в стандартный вывод, что означает, что он возвращается на локальный компьютер. Передача этого в удаленный cat процесс приводит к архиву на другом сервере.

В зависимости от настроек вашей сети, может быть более эффективно запустить ssh на первом удаленном компьютере, чтобы подключиться непосредственно к другому серверу, вместо того, чтобы сначала вернуть данные на ваш компьютер.

ssh 188.166.177.20 'tar czf - latest | ssh 226.169.204.155 "cat > latest.tgz"'

(Повторно введите имена пользователей при необходимости.)

Вы также можете инвертировать порядок команд ssh, чтобы избежать необходимости запуска cat, перенаправив вывод tar непосредственно в файл назначения на удаленном компьютере.

ssh 226.169.204.155 'ssh 188.166.177.20 "tar czf - latest" > latest.tgz'
...