Utilisez tar
:
tar cvzf - -T list_of_filenames | ssh hostname tar xzf -
J'aimerais utiliser scp pour cela, mais scp ne permet de transférer qu'un seul fichier à la fois.
Je suis presque sûr que ce n'est pas vrai, du moins pas pour le scp
commande fournie par OpenSSH inclus avec la plupart des distributions Linux.
J'utilise scp file1 file2 ... fileN [email protected]:/destination/directory/
assez fréquemment.
Pour une compression transparente, le protocole SSH a ceci intégré et scp
peut l'utiliser si vous fournissez le -C
option sur la ligne de commande. Pour de nombreux petits fichiers similaires, vous trouverez l'option tar+gz suggérée par akira pour une meilleure compression car elle peut utiliser la similitude entre ces fichiers où scp
compresse chaque fichier en tant qu'entité distincte. Je préfère généralement utiliser scp car il est plus facile de reprendre un transfert partiel (ou, bien que je sache que dans cette situation, le questionneur n'a pas l'option) rsync
car cela est à la fois encore plus facile à reprendre et partage l'avantage de la compression de flux entier de l'option tar+gz.
N'est pas scp -r yourdir otherhost:/otherdir
travailler ?
Essayez ceci alors :
tar cfz - . | ssh otherhost "cd /mydir; tar xvzf -"
le z
-flag to tar effectue la compression. Ou vous pouvez utiliser -C pour ssh :
tar cf - . | ssh -C otherhost "cd /mydir; tar xvf -"