Сжать каталог с помощью tar / gz через SSH на локальный компьютер?

15

Я хотел бы, по сути, tar / gz каталог на удаленном компьютере и сохранить файл на моем локальном компьютере без необходимости подключения обратно на мой локальный компьютер с удаленного компьютера. Есть ли способ сделать это через SSH? Файл tar не нужно хранить на удаленном компьютере, только на локальном компьютере. Это возможно?

Нафтули Кей
источник

Ответы:

26

Вы можете сделать это с помощью команды ssh, просто скажите tarсоздать архив на его стандартном выводе:

ssh remote.example.com 'cd /path/to/directory && tar -cf - foo | gzip -9' >foo.tgz

Другой подход, который более удобен, если вы хотите выполнить много манипуляций с файлами на другом компьютере, но для создания архива за один раз излишни, - это монтировать файловую систему удаленного компьютера с SSHFS ( файловая система FUSE ). Вы должны включить сжатие на уровне SSH.

mkdir ~/net/remote.example.com
sshfs -C remote.example.com:/ ~/net/remote.example.com
tar -czf foo.tgz -C ~/net/remote.example.com/path/to/directory foo
Жиль "ТАК - перестань быть злым"
источник
3
Мне просто любопытно, почему вы порекомендовали tar -cf - foo | gzip -9вместо tar -czf - fooили tar -cz foo?
Патрик
@Patrick Чуть более портативный, например, он будет работать на Solaris.
Жиль "ТАК - перестань быть злым"
Не могли бы вы так любезно описать все аргументы?
Rootical V.
3
@RooticalV. tar -cf - fooсоздает ( -c) архив на стандартный вывод ( -f -) из файла foo. gzip -9использует лучший (самый медленный) метод сжатия. Если вам все равно, вы можете просто использовать ssh remote.example.com tar cz /path/to/directory/foo > foo.tar.gz.
ареколек
-1

Для простого способа скопировать каталог или файл, сжав его только для транспорта:

$ ssh domain.net 'ls foo'
file1   file2

$ ssh domain.net 'tar czf - foo' | tar xz

$ ls foo
file1   file2
Пьер де ЛЕСПИНАЙ
источник
1
Это не хранит tarархив на локальном компьютере, который был, как предполагалось.
Кусалананда
1
Это для людей, которые задаются этим вопросом (как и я), когда ищут, как скопировать что-либо через SSH со сжатием. Есть только это дополнительное tar xzиз трубы с более простым и более читаемым примером.
Пьер де Леспин