798 votes

Scp peut-il copier des répertoires de manière récursive ?

Actuellement, je ne peux copier qu'un seul .tar fichier. Mais comment puis-je copier des répertoires de manière récursive avec scp ?

8voto

sellibitze Points 13607

Après avoir recherché le drapeau de copie récursive, et l'avoir utilisé avec succès grâce à ce post, je voudrais juste poster une suggestion.

Si le cas est que vous copiez (récursivement) un répertoire. Peut-être que si les fichiers sont envoyés compressés, vous pourriez gagner du temps lors du transfert.

Ce que j'ai fait à la fin, c'est :

local$ tar -czvf local.tar.gz directory/
local$ scp local.tar.gz user@remote:/directory
ssh user@remote
remote$ tar -xzvf local.tar.gz

J'espère que cela vous aidera

0 votes

L'extension du fichier doit être soit .tar.gz o .tgz étant donné que le fichier est une archive tar gzippée (puisque le fichier -z est utilisé).

4voto

Jarrod Points 562

Vous pouvez copier récursivement un répertoire dans une archive compressée avec cette simple commande :

ssh -p 22 user@address-to-copy-from.com  'cd /parent/directory && tar zcvf - directory_to_copy' > /destination/on/your/machine/archive_name.tgz

Par exemple, pour copier le contenu de /var/log de domain.com a ~/logs.tgz tu cours :

ssh -p 22 user@domain.com  'cd /var && tar zcvf - log' > ~/logs.tgz

Vous pouvez également extraire des fichiers sur le système cible en utilisant des tuyaux. Cette commande copiera le contenu de /var/log en domain.com a ~/destination/log sur votre système :

ssh -p 22 user@domain.com  'cd /var && tar zcvf - log' | tar xzf - -C ~/destination

Cependant, pour mettre en miroir un répertoire, vous devriez probablement utiliser rsync ...

3voto

filiprem Points 218

Si vous préférez passer le mot de passe de l'utilisateur en tant que paramètre plutôt que de le saisir de manière interactive, vous pouvez utiliser la méthode suivante sshpass ( sudo apt-get install -y sshpass ).

Ejemplo:

sshpass -p 'remote_password' scp -rp /src/folder myremoteusername@122.10.12.123:/dest/folder

2voto

atthik Points 21

Vous pouvez utiliser l'option -r avec la commande scp pour copier des répertoires de manière récursive sur n'importe quel système. Si vous avez besoin d'autre chose, consultez tutoriel sur la commande scp . L'option -r représente une opération récursive dans la plupart des commandes Linux.

2 votes

Bien que vrai, le -r Cette option a déjà été suggérée il y a des années et est la réponse acceptée.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X