Comment compresser un répertoire, le transférer via scp et décompresser en une seule commande?


11

Je transfère fréquemment des répertoires volumineux scpet ce serait bien si je pouvais en quelque sorte compresser le répertoire, l'envoyer et le décompresser tout en un.

Est-ce que quelque chose comme ça est possible?

Réponses:


29

Que diriez-vous d'utiliser à la rsyncplace avec l' -zoption activée pour la compression?

rsync -az --progress source_dir/* remote_host:/destination_dir

Cela a également l'avantage supplémentaire que si le fichier existe déjà et n'a pas changé sur la destination, il ne sera pas transféré.


7

Grâce à la réponse de @ johnshen64, j'ai pu trouver quelque chose d'assez sympa

tar -zc path/to/source | ssh user@remote tar -zxC path/to/destination

Malheureusement, cela ne montre pas de progrès lors de son transfert. J'ai remarqué des améliorations de vitesse incroyables en utilisant cette méthode.

Si quelqu'un sait comment montrer la progression d'un transfert comme celui-ci, j'apprécierais grandement l'aide :)


1
Insérez pventre tar et ssh .
user1686

C'est génial si vous n'avez pas rsync disponible
Simon Hartcher

2

eh bien, j'utiliserais plutôt du goudron

tar cf - répertoire | serveur ssh 'tar xf -'

vous pouvez ajouter v pour vérifier.

zip devrait être le même, mais tar est plus robuste pour linux à mon avis.


+1 merci pour votre aide; cela m'a conduit à mi-chemin. J'ai pu trouver une solution qui n'utilise pas le -caractère cryptique , utilise également la compression gzip et permet de cibler un répertoire de destination.
macek

@macek: Notez que cela f -peut être requis sur d'autres systèmes d'exploitation, car la plupart des versions tar essaieront autrement de lire à partir d'un lecteur de bande. La lecture de stdin par défaut est spécifique à GNU.
user1686
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.