Comment copier des répertoires de manière récursive avec scp sous Linux

0
Publicité

Un problème courant lorsque vous travaillez avec des fichiers est d’appliquer des opérations de manière récursive ou à chaque sous-répertoire du dossier entier. L’utilitaire scp est utilisé pour transférer des fichiers et des répertoires vers des serveurs distants et prend en charge les opérations récursives.

Exécuter scp de manière récursive

Bien qu’il soit parfois plus rapide d’effectuer des transferts volumineux dans une seule archive appelée tarball , la plupart du temps, la surcharge de transfert de fichiers individuels n’a pas d’importance.

La copie récursive avec scp est simple : utilisez simplement l’indicateur -r en plus de tout ce que vous avez ajouté :

scp -r chemin local [email protected]:/chemin distant

Notez qu’il s’agit explicitement de minuscules -r, contrairement à beaucoup d’autres commandes qui utilisent ou nécessitent -R.

Publicité

Cela agira comme un glisser-déposer dans /chemin distant/, en copiant le contenu du chemin local/ vers chemin distant et en le plaçant dans /chemin distant /chemin local/.

Si vous souhaitez plutôt synchroniser chemin local/ et /chemin distant , vous devrez transférer le dossier vers le dossier parent de /chemin distant/, la destination. Dans ce cas, ce serait /, le répertoire racine.

Cela suivra également les liens symboliques dans le chemin local lors de la résolution des fichiers, mais ne créera pas nécessairement ces mêmes liens sur le serveur distant. Par exemple, la copie d’un tout nouveau fichier vers et depuis /etc/nginx/sites-enabled ne le placera pas automatiquement /etc/nginx/sites-available sur le répertoire distant .

Utiliser rsync à la place

Linux a plusieurs outils pour gérer ce travail, et l’un des meilleurs est rsync, qui fait tout ce que scp peut faire, mais a beaucoup plus d’options et est beaucoup plus rapide à démarrer. Il ne copie pas non plus les fichiers qui n’ont pas été modifiés, ce qui en fait un excellent outil pour « synchroniser » en continu deux répertoires l’un avec l’autre sans retransférer les données inutilement.

rsync fonctionne essentiellement de la même manière que scp, avec quelques options supplémentaires incluses pour spécifier les paramètres :

rsync -a -essh ​​Chemin local/ [email protected]:/Chemin distant/

L’indicateur -a spécifie le mode d’archivage , qui active un grand nombre d’options couramment utilisées à la fois. L’indicateur -e ssh est configuré rsync pour le transfert via SSH.

Publicité