Dans le monde informatique, il est important de conserver autant que possible une copie de vos données afin de les utiliser en cas de besoin en cas de panne de disque ou de suppression par erreur. Par conséquent, faire une sauvegarde régulière à la fin de la journée est une bonne pratique d'un utilisateur d'ordinateur responsable.
La commande 'rsync' est normalement utilisée pour copier les données volumineuses. Cependant, la commande "cp" est également utilisée lors de la copie d'un petit nombre de répertoires et de fichiers sur une machine locale.
Dans cet article, nous apprendrons comment sauvegarder des fichiers et des dossiers dans Debian 10.
Prérequis
Vous devez disposer des éléments suivants pour que ce didacticiel fonctionne.
1. Deux machines Debian 10 avec les privilèges root
Sauvegarder les répertoires avec la commande cp
La première commande dont nous allons discuter est le "cp". Il est utilisé pour copier un petit nombre de fichiers et de dossiers sur une machine locale. Par conséquent, il n'est pratiquement pas utilisé dans l'industrie.
La syntaxe de la commande 'cp' est la suivante.
cp -option1 -option2 source destination
Pour comprendre, nous allons copier les fichiers du Bureau/log vers Karim/logrot. Exécutez la commande suivante sur le terminal.
cp -avr Desktop/log Karim/logro
a :Il est utilisé pour préserver les attributs du répertoire tels que le mode de fichier, la propriété, les horodatages, etc.
r :Il est utilisé pour copier récursivement les répertoires qui se trouvent dans le répertoire principal
v :il est utilisé pour verbaliser la sortie
Voici l'exemple de sortie.
Si vous souhaitez copier tous les fichiers, répertoires et sous-répertoires dans un autre répertoire, vous pouvez utiliser le caractère générique *. Par exemple, la commande suivante copiera toutes les données d'un répertoire existant Desktop/log/ vers Karim/logro/.
cp -avr Desktop/log/* Karim/logro/
Voici l'exemple de sortie.
Sauvegarder les répertoires avec rysnc
Comme nous l'avons déjà dit, la commande la plus utilisée pour sauvegarder des fichiers et des dossiers est le "rsync". Par conséquent, discutons de ce que c'est et comment il est utilisé.
Qu'est-ce que rysnc ?
Rsync signifie synchronisation à distance et a été écrit par Andrew Tridgell et Paul Mackerras le 19 juin 1996. C'est une commande efficace pour la synchronisation et le transfert de fichiers entre les machines locales et réseau. Il est disponible par défaut sur la plupart des systèmes. Cependant, vous pouvez l'installer à l'aide des commandes simples suivantes si elle n'est pas disponible (exécutez les commandes avec les privilèges root).
apt-get update
apt-get install rsync
Vous devez également avoir un client et un serveur ssh installés sur les deux machines du réseau avant de synchroniser les données. Exécutez les commandes suivantes avec les privilèges root sur les deux machines Debian 1o.
apt-get install ssh
Sauvegarder les répertoires sur la machine locale
La syntaxe de base lors de la synchronisation des fichiers sur la machine locale est la suivante.
option rsync répertoire-source répertoire-destination
Si vous souhaitez conserver les métadonnées telles que la propriété, les autorisations, la date de création, etc., vous devez utiliser l'option -a. Si vous souhaitez copier récursivement les répertoires à l'intérieur du répertoire, vous devez utiliser l'option -r.
rsync -ar répertoiresourcerépertoiredestination
De même, si vous souhaitez voir la progression pendant la synchronisation, utilisez l'option -v. Les commandes devraient ressembler à ceci,
rsync -avr répertoiresourcerépertoiredestination
Supposons que nous voulions synchroniser les fichiers et dossiers situés sur Desktop/log avec Karim/logro, la commande devrait ressembler à ceci.
rsync -avr Desktop/log Karim/logro
Voici l'exemple de sortie.
Discutons d'un autre exemple et supposons que nous avons un dossier data-1 situé sur le disque dur 1 (/media/hdd1/data-1) et que vous souhaitez le synchroniser avec le deuxième disque dur sur /media/hdd2/. La commande complète devrait ressembler à ceci.
rsync -avr /media/hdd1/data-1 /media/hdd2/
Une fois exécutée, la commande créera un répertoire data-1 sur le deuxième disque dur et copiera tout le contenu sur le chemin de destination /media/hdd2/.
Sauvegarder des fichiers et des répertoires sur le réseau
La syntaxe est légèrement différente lors du transfert de données sur le réseau. Lorsque vous souhaitez synchroniser un répertoire local avec un répertoire distant, la commande doit ressembler à ceci.
rsync [-options] PathofSourceFolder [email protected] :PathofDestinationFolder
Supposons que j'ai un dossier de test situé dans ma machine locale à /home/karim/testfolder et que je souhaite le synchroniser à /home/karim. L'utilisateur distant est 'karim' et l'adresse IP de la machine est 10.1.1.2. Exécutez la commande suivante sur le terminal.
rsync -avr /home/karim/testfolder [email protected]:/home/karim/
Dès que vous exécutez cette commande, il vous sera demandé de saisir le mot de passe de la machine distante.
Vous trouverez ci-dessous l'exemple de sortie après la synchronisation du répertoire.
Lorsque vous souhaitez synchroniser un répertoire distant avec un répertoire local, la commande doit ressembler à ceci.
rsync [-options] [email protected] :PathofSourceFolder PathofDestinationFolder
Supposons que nous ayons un dossier distant "testfolder" situé à /home/karim/ et que je souhaite synchroniser avec la machine locale à l'emplacement /home/karim/. L'adresse IP de la machine distante est 10.1.1.2 et le nom d'utilisateur est karim.
Exécutez la commande suivante sur le terminal.
rsync -avr [email protected]:/home/karim/ /home/karim/testfolder
Vous trouverez ci-dessous l'exemple de sortie.
Comment automatiser la sauvegarde
Il est plus pratique d'automatiser la sauvegarde afin que les ingénieurs système n'aient pas à se soucier de l'exécution manuelle des commandes et des sauvegardes quotidiennes.
Il existe un outil célèbre appelé "crontab" sous Linux qui est utilisé pour automatiser le processus de sauvegarde. Nous pouvons planifier l'exécution de toutes les commandes ci-dessus quotidiennement, hebdomadairement ou mensuellement. Si vous n'avez pas installé crontab sur votre distribution Linux, exécutez les commandes suivantes sur le terminal avec les privilèges sudo.
apt-get update
apt-get install cron
Une fois que vous avez installé crontab, exécutez la commande suivante sur le terminal pour ouvrir l'éditeur crontab.
crontab -e
L'exemple de sortie devrait ressembler à ce qui suit.
Le crontab a les cinq champs suivants,
commande m h dm m dw
m :spécifie les minutes (0-59)
h :spécifie l'heure (0-23)
dm :spécifie le jour du mois (1-31)
m :spécifie le mois (1-12)
dw :spécifie le jour de la semaine (0-6 où 0 est dimanche)
Prenons un exemple précédent de synchronisation d'un répertoire d'un disque à un autre et disons que nous voulons le faire tous les jours à midi, la tâche cron devrait être la suivante.
0 0 * * * rsync -avr /media/hdd1/data-1 /media/hdd2/
Supposons que vous souhaitiez effectuer une sauvegarde tous les mois le dimanche à midi, la tâche cron doit être écrite comme suit.
0 0 1 * * rsync -avr /media/hdd1/data-1 /media/hdd2/
Conclusion
Vous avez lu comment nous pouvons effectuer une sauvegarde à l'aide de la commande extrêmement puissante "rysnc". Nous avons conclu l'article avec un "crontab". ‘rsync’ et ‘crontab’ est également une combinaison utile.