Comprimere una directory usando tar / gz su SSH sul computer locale?


15

Vorrei essenzialmente tarare / gz una directory su un computer remoto e salvare il file sul mio computer locale senza dover riconnettermi al mio computer locale da quello remoto. C'è un modo per farlo su SSH? Non è necessario che il file tar sia archiviato sul computer remoto, ma solo sul computer locale. È possibile?

Risposte:


26

Puoi farlo con un comando ssh, basta dire tardi creare l'archivio sul suo output standard:

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

Un altro approccio, che è più conveniente se si desidera eseguire molte manipolazioni di file sull'altra macchina ma è eccessivo per la creazione di un archivio one-shot, è montare il filesystem della macchina remota con SSHFS (un filesystem FUSE ). È necessario abilitare la compressione a livello di 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
Sono solo curioso, perché mi consiglieresti tar -cf - foo | gzip -9invece di tar -czf - fooo tar -cz foo?
Patrick,

@Patrick Leggermente più portatile, ad es. Funzionerà su Solaris.
Gilles 'SO- smetti di essere malvagio' il

Saresti così gentile da descrivere tutti gli argomenti?
Rootical V.

3
@RooticalV. tar -cf - foocrea un -carchivio ( ) sullo standard output ( -f -) dal file foo. gzip -9utilizza il metodo di compressione migliore (più lento). Se non ti interessa, puoi semplicemente usare ssh remote.example.com tar cz /path/to/directory/foo > foo.tar.gz.
Arekolek,

-1

Per un modo semplice per copiare una directory o un file comprimendolo solo per il trasporto:

$ ssh domain.net 'ls foo'
file1   file2

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

$ ls foo
file1   file2

1
Questo non memorizza l' tararchivio sul computer locale, come previsto.
Kusalananda

1
Questo è per le persone che affrontano questa domanda (come me) quando cercano come copiare qualcosa tramite SSH con compressione. C'è solo questo ulteriore tar xzout of the pipe con un esempio più semplice e più leggibile.
Pierre de LESPINAY,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.