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
?
Cependant, gardez à l'esprit que cela ne préservera pas les liens symboliques.
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
?
Notez que -pr
(options dans l'ordre inverse) ne copiera pas les dossiers, mais plutôt leur contenu dans le répertoire cible (apparemment, l'ordre des options est important).
Si je fais un ./ pour faire le répertoire actuel, il dit Error : unexpected file name. Je sais que je peux aller dans le répertoire parent et le faire de cette façon, ou utiliser le globing avec *. Cependant, je suis curieux de savoir pourquoi ./ ne fonctionnerait pas pour le répertoire source ?
Bien que les réponses précédentes soient techniquement correctes, vous devriez aussi envisager d'utiliser rsync
à la place. rsync
compare les données du côté de l'envoi et de la réception à l'aide d'un mécanisme de différenciation afin de ne pas avoir à renvoyer des données qui ont déjà été envoyées.
Si vous avez l'intention de copier quelque chose sur une machine distante plus d'une fois, utilisez rsync
. En fait, il est bon d'utiliser rsync
à chaque fois parce qu'il dispose de plus de contrôles pour des choses comme la copie des permissions et de la propriété des fichiers et l'exclusion de certains fichiers ou répertoires. En général :
$ rsync -av /local/dir/ server:/remote/dir/
va synchroniser un répertoire local avec un répertoire distant. Si vous l'exécutez une seconde fois et que le contenu du répertoire local n'a pas changé, aucune donnée ne sera transférée - bien plus efficace que l'exécution de la commande scp
et en copiant tout à chaque fois.
Aussi, rsync
vous permet de récupérer les transferts interrompus très facilement, contrairement à scp
.
Enfin, les versions modernes de rsync
fonctionnent par défaut via ssh, donc si scp
fonctionne déjà, rsync
devrait pouvoir être remplacée par une autre.
Je suis d'accord rsync
est plus efficace. Une chose qu'il ne fait pas actuellement scp
permet de copier entre des hôtes distants (du moins sans exécuter le client rsync sur l'un d'eux).
-av
v pour verbeux, a pour archive et est un raccourci de -rlptgoD qui implique une récurrence, la préservation des dates et des liens des titulaires de droits. Si vous ne voulez que du récursif, utilisez -r
Rsync ne crypte pas le trafic, vous devez donc utiliser un "-e ssh" supplémentaire pour crypter le trafic comme scp.
C'est ce que le -r
l'option est pour. :)
Voir le scp man page pour plus d'informations si nécessaire.
Je voulais juste souligner la différence entre cp et scp car -r et -R ne sont pas les mêmes. unix.stackexchange.com/questions/18712/
Le meilleur moyen est d'utiliser rsync via SSH.
rsync -a -essh /source/ user@dest-server:/dest/
rsync -a -essh user@source-server:/source/ /dest/
Mes options préférées sont -Pazvessh --delete :
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.