Copier des répertoires sous Linux est une grande partie de chaque routine d'administrateur système.
Si vous travaillez avec Linux depuis un certain temps, vous savez à quel point il est important de garder vos dossiers bien structurés.
Dans certains cas, vous devrez peut-être copier certains répertoires sur votre système afin de réorganiser la structure de votre système de fichiers principal.
Dans ce tutoriel, nous allons voir comment vous pouvez facilement copier des répertoires et des dossiers sous Linux en utilisant la commande cp.
Copier des répertoires sous Linux
Afin de copier un répertoire sous Linux, vous devez exécuter la commande "cp" avec l'option "-R" pour le récursif et spécifier les répertoires source et destination à copier.
$ cp -R <source_folder> <destination_folder>
Par exemple, supposons que vous souhaitiez copier le répertoire "/etc" dans un dossier de sauvegarde nommé "/etc_backup".
Le dossier "/etc_backup" est également situé à la racine de votre système de fichiers.
Pour copier le répertoire "/etc" dans ce dossier de sauvegarde, vous devez exécuter la commande suivante
$ cp -R /etc /etc_backup
En exécutant cette commande, le dossier "/etc" sera copié dans le dossier "/etc_backup", ce qui donnera le dossier suivant.
Génial, vous avez réussi à copier un dossier dans un autre dossier sous Linux.
Mais que se passe-t-il si vous souhaitez copier le contenu du répertoire, de manière récursive, à l'aide de la commande cp ?
Copier le contenu du répertoire de manière récursive sous Linux
Afin de copier le contenu d'un répertoire de manière récursive, vous devez utiliser la commande "cp" avec l'option "-R" et spécifier le répertoire source suivi d'un caractère générique.
$ cp -R <source_folder>/* <destination_folder>
Compte tenu de notre exemple précédent, disons que nous voulons copier le contenu du répertoire "/etc" dans le dossier "/etc_backup".
Pour y parvenir, nous écrirons la commande suivante
$ cp -R /etc/* /etc_backup
Lors de la liste du contenu du dossier de sauvegarde, vous vous rendrez compte que le dossier lui-même n'a pas été copié mais que son contenu l'était.
$ ls -l /etc_backup
Génial, vous avez copié le contenu du répertoire "/etc" directement dans un dossier de sauvegarde !
Copier plusieurs répertoires avec cp
Afin de copier plusieurs répertoires sous Linux, vous devez utiliser la commande "cp" et lister les différents répertoires à copier ainsi que le dossier de destination.
$ cp -R <source_folder_1> <source_folder_2> ... <source_folder_n> <destination_folder>
A titre d'exemple, disons que nous voulons copier le répertoire "/etc" ainsi que tous les répertoires home situés dans le répertoire "/home".
Pour y parvenir, nous exécuterions la commande suivante
$ cp -R /etc/* /home/* /backup_folder
Félicitations, vous avez réussi à copier plusieurs répertoires en utilisant la commande cp sous Linux !
Copier les répertoires sur les hôtes distants
Dans certains cas, vous souhaiterez peut-être copier un répertoire afin de conserver une sauvegarde sur un serveur de sauvegarde.
Inutile de préciser que votre serveur de sauvegarde est en local à distance :vous devez copier votre répertoire sur le réseau.
Copier avec rsync
Pour copier des répertoires vers des emplacements distants, vous devez utiliser la commande rsync, spécifier le dossier source ainsi que la destination distante vers laquelle copier.
Assurez-vous d'inclure l'option "-r" pour "récursif" et l'option "-a" pour "tous" (sinon les fichiers non réguliers seront ignorés)
$ rsync -ar <source_folder> <destination_user>@<destination_host>:<path>
De plus, si l'utilitaire "rsync" n'est pas installé sur votre serveur, assurez-vous de l'installer en utilisant les privilèges sudo.
$ sudo apt-get install rsync
$ sudo yum install rsync
Par exemple, disons que nous devons copier le dossier "/etc" sur un serveur de sauvegarde situé à 192.168.178.35/24.
Nous voulons copier le répertoire dans le "/etc_backup" du serveur distant, avec le nom d'utilisateur "devconnected".
Pour y parvenir, nous exécuterions la commande suivante
$ rsync -ar /etc [email protected]:/etc_backup
Remarque :nous avons déjà rédigé un guide sur le transfert de fichiers et de dossiers sur le réseau, si vous avez besoin d'un guide complet à ce sujet.
De même, vous pouvez choisir de copier le contenu du répertoire "/etc/ plutôt que le répertoire lui-même en ajoutant un caractère générique après le répertoire à copier.
$ rsync -ar /etc/* [email protected]:/etc_backup/
Enfin, si vous souhaitez introduire la date actuelle lors d'une sauvegarde de répertoire, vous pouvez utiliser la substitution de paramètres Bash.
$ rsync -ar /etc/* [email protected]:/etc_backup/etc_$(date "+%F")
Remarque :si vous recherchez un tutoriel sur la définition des dates sous Linux, nous avons un guide à ce sujet sur le site Web.
Copier avec scp
Afin de copier un répertoire sur Linux vers un emplacement distant, vous pouvez exécuter la commande "scp" avec l'option "-r" pour récursif suivi du répertoire à copier et du dossier de destination.
$ scp -r <source_folder> <destination_user>@<destination_host>:<path>
A titre d'exemple, disons que nous voulons copier le répertoire "/etc" sur un serveur de sauvegarde situé à 192.168.178.35 dans le dossier "/etc_backup".
Pour y parvenir, vous devez exécuter la commande suivante
$ scp -r /etc [email protected]:/etc_backup/
Félicitations, vous avez réussi à copier un répertoire entier à l'aide de la commande scp.
De manière très similaire à la commande rsync, vous pouvez choisir d'utiliser la substitution de paramètre Bash pour copier votre répertoire dans un répertoire personnalisé sur votre serveur.
$ scp -r /etc [email protected]:/etc_backup/etc_$(date "+%F")
Conclusion
Dans ce tutoriel, vous avez appris comment vous pouvez facilement copier des répertoires sous Linux , que vous choisissiez de le faire localement ou à distance.
La plupart du temps, la copie des répertoires est effectuée afin d'avoir des sauvegardes des dossiers critiques sur votre système :à savoir /etc, /home ou Linux logs.
Si vous êtes intéressé par l'administration système Linux , nous avons une section complète qui lui est consacrée sur le site Web, alors assurez-vous de la consulter !