Un problème courant lors de l'utilisation de fichiers est l'application d'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
Pendant qu'il est parfois plus rapide pour les transferts volumineux à effectuer dans une seule archive connue sous le nom de 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 : il suffit utilisez le drapeau -r en plus de tout ce que vous avez ajouté :
scp -r localpath user@remote:/remotepath
Notez qu'il s'agit explicitement de -r en minuscule, contrairement à beaucoup d'autres commandes qui utilisent ou nécessitent -R.
Cela agira comme un glisser-déposer dans /remotepath/, en copiant le contenu de localpath/sur la télécommande et en le plaçant dans /remotepath/localpath/.
Publicité
Si vous souhaitez plutôt synchroniser localpath / et /remotepath/, vous devrez transférer le dossier dans le dossier parent de /remotepath/, 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 dans /etc/nginx/sites-available sur la télécommande.
Utiliser rsync à la place
Linux dispose de 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 pour 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 la “synchronisation” deux répertoires l'un à 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 localpath/user @remote:/remotepath/
L'indicateur -a spécifie le mode d'archivage, qui active de nombreuses options couramment utilisées à la fois. L'indicateur -e ssh configure rsync pour le transfert via SSH.
CONNEXES : Comment utiliser rsync pour sauvegarder vos données sous Linux