Comment utiliser rsync pour sauvegarder vos données sous Linux

Table des matières:

Comment utiliser rsync pour sauvegarder vos données sous Linux
Comment utiliser rsync pour sauvegarder vos données sous Linux

Vidéo: Comment utiliser rsync pour sauvegarder vos données sous Linux

Vidéo: Comment utiliser rsync pour sauvegarder vos données sous Linux
Vidéo: 11 Days Left: "Shoulda Used Theta!" Why the world NEEDS Theta and how you can be a part of it - YouTube 2024, Avril
Anonim
rsync est un protocole conçu pour les systèmes de type Unix qui offre une polyvalence incroyable pour la sauvegarde et la synchronisation des données. Il peut être utilisé localement pour sauvegarder des fichiers dans différents répertoires ou peut être configuré pour se synchroniser sur Internet avec d'autres hôtes.
rsync est un protocole conçu pour les systèmes de type Unix qui offre une polyvalence incroyable pour la sauvegarde et la synchronisation des données. Il peut être utilisé localement pour sauvegarder des fichiers dans différents répertoires ou peut être configuré pour se synchroniser sur Internet avec d'autres hôtes.

Il peut être utilisé sur les systèmes Windows mais n'est disponible que via différents ports (tels que Cygwin). Dans cet article, nous allons donc parler de sa configuration sous Linux. Premièrement, nous devons installer / mettre à jour le client rsync. Sur les distributions Red Hat, la commande est «yum install rsync» et sous Debian, «sudo apt-get install rsync».

 La commande sur Red Hat / CentOS, après vous être connecté en tant que root (notez que certaines distributions récentes de Red Hat prennent en charge la méthode sudo).
La commande sur Red Hat / CentOS, après vous être connecté en tant que root (notez que certaines distributions récentes de Red Hat prennent en charge la méthode sudo).
 La commande sur Debian / Ubuntu.
La commande sur Debian / Ubuntu.

Utilisation de rsync pour les sauvegardes locales

Dans la première partie de ce didacticiel, nous allons sauvegarder les fichiers de Directory1 vers Directory2. Ces deux répertoires sont sur le même disque dur, mais cela fonctionnerait exactement si les répertoires existaient sur deux lecteurs différents. Nous pouvons aborder ce problème de différentes manières, en fonction du type de sauvegarde que vous souhaitez configurer. Dans la plupart des cas, la ligne de code suivante suffira:

$ rsync -av --delete /Directory1/ /Directory2/

Le code ci-dessus synchronisera le contenu de Directory1 avec Directory2 et ne laissera aucune différence entre les deux. Si rsync trouve que Directory2 a un fichier que Directory1 ne possède pas, il le supprimera. Si rsync trouve un fichier qui a été modifié, créé ou supprimé dans Directory1, cela reflétera les mêmes modifications apportées à Directory2.

Il existe de nombreux commutateurs que vous pouvez utiliser pour rsync afin de le personnaliser selon vos besoins spécifiques. Voici ce que le code susmentionné indique à rsync de faire avec les sauvegardes:

1. -a = récursif (recurse dans des répertoires), liens (copier des liens symboliques sous forme de liens symboliques), permanentes (conserver les autorisations), fois (conserver les temps de modification), groupe (conserver le groupe), propriétaire (conserver le propriétaire), conserver les fichiers de périphérique, et conserver des fichiers spéciaux. 2. -v = verbose. La raison pour laquelle je pense que les commentaires sont importants est que vous pouvez voir exactement ce que rsync sauvegarde. Réfléchissez à ceci: que se passe-t-il si votre disque dur tourne mal et commence à supprimer des fichiers à votre insu, puis exécutez votre script rsync et applique ces modifications à vos sauvegardes, supprimant ainsi toutes les occurrences d'un fichier que vous ne souhaitiez pas obtenir? débarrassé de? 3. –delete = Ceci indique à rsync de supprimer tous les fichiers du répertoire 2 qui ne se trouvent pas dans le répertoire 1. Si vous choisissez d'utiliser cette option, je vous recommande également d'utiliser les options détaillées, pour les raisons mentionnées ci-dessus.

En utilisant le script ci-dessus, voici la sortie générée à l’aide de rsync pour sauvegarder Directory1 vers Directory2. Notez que sans le commutateur prolixe, vous ne recevrez aucune information aussi détaillée.

La capture d'écran ci-dessus nous indique que File1.txt et File2.jpg ont été détectés comme étant nouveaux ou autrement modifiés par rapport aux copies existantes dans Directory2, et ont donc été sauvegardés. Conseil Noob: remarquez les barres obliques à la fin des répertoires de ma commande rsync - elles sont nécessaires, assurez-vous de les mémoriser.
La capture d'écran ci-dessus nous indique que File1.txt et File2.jpg ont été détectés comme étant nouveaux ou autrement modifiés par rapport aux copies existantes dans Directory2, et ont donc été sauvegardés. Conseil Noob: remarquez les barres obliques à la fin des répertoires de ma commande rsync - elles sont nécessaires, assurez-vous de les mémoriser.

Nous passerons en revue quelques commutateurs plus pratiques vers la fin de ce didacticiel, mais rappelez-vous que pour afficher une liste complète, vous pouvez taper «man rsync» et afficher la liste complète des commutateurs à utiliser.

Cela couvre à peu près tout ce qui concerne les sauvegardes locales. Comme vous pouvez le constater, rsync est très facile à utiliser. Cela devient légèrement plus complexe lorsque vous l'utilisez pour synchroniser des données avec un hôte externe via Internet, mais nous allons vous montrer un moyen simple, rapide et sécurisé de le faire.

Utilisation de rsync pour les sauvegardes externes

rsync peut être configuré de différentes manières pour les sauvegardes externes, mais nous allons passer en revue la méthode la plus pratique (et la plus simple et la plus sécurisée) de tunnelisation de rsync par SSH. La plupart des serveurs et même de nombreux clients ont déjà SSH, et il peut être utilisé pour vos sauvegardes rsync. Nous allons vous montrer le processus à suivre pour faire en sorte qu'une machine Linux en sauvegarde sur une autre sur un réseau local. Le processus serait exactement le même si un hôte se trouvait quelque part sur Internet, il suffit de noter que le port 22 (ou le port sur lequel SSH est configuré) devrait être transféré sur tout équipement réseau côté serveur.

Sur le serveur (l'ordinateur qui recevra les sauvegardes), assurez-vous que SSH et rsync sont installés.

# yum -y install ssh rsync

# sudo apt-get install ssh rsync

Outre l'installation de SSH et de rsync sur le serveur, tout ce qui reste à faire est de configurer les référentiels sur le serveur sur lequel vous souhaitez sauvegarder les fichiers et de vous assurer que SSH est verrouillé. Assurez-vous que l'utilisateur que vous envisagez d'utiliser a un mot de passe complexe. Il peut également s'avérer judicieux de basculer le port sur lequel SSH écoute (le paramètre par défaut est 22).

Nous exécuterons la même commande que nous avons utilisée pour utiliser rsync sur un ordinateur local, mais inclurons les ajouts nécessaires à la tunnelisation de rsync via SSH vers un serveur de mon réseau local. Pour l'utilisateur «geek» se connectant à «192.168.235.137» et utilisant les mêmes commutateurs que ci-dessus (-av –delete), nous allons exécuter ce qui suit:

$ rsync -av –delete -e ssh /Directory1/ [email protected]:/Directory2/

Si SSH écoute sur un port autre que 22, vous devez spécifier le numéro de port, comme dans cet exemple où j'utilise le port 12345:

$ rsync -av –delete -e 'ssh -p 12345' /Directory1/ [email protected]:/Directory2/

Comme vous pouvez le voir sur la capture d'écran ci-dessus, le résultat obtenu lors d'une sauvegarde sur le réseau est pratiquement identique à celui d'une sauvegarde locale, la seule chose qui change est la commande que vous utilisez. Notez également qu'il vous a demandé un mot de passe.Ceci est à authentifier avec SSH. Vous pouvez configurer des clés RSA pour ignorer ce processus, ce qui simplifiera également l'automatisation de rsync.
Comme vous pouvez le voir sur la capture d'écran ci-dessus, le résultat obtenu lors d'une sauvegarde sur le réseau est pratiquement identique à celui d'une sauvegarde locale, la seule chose qui change est la commande que vous utilisez. Notez également qu'il vous a demandé un mot de passe.Ceci est à authentifier avec SSH. Vous pouvez configurer des clés RSA pour ignorer ce processus, ce qui simplifiera également l'automatisation de rsync.

Automatisation des sauvegardes rsync

Cron peut être utilisé sous Linux pour automatiser l'exécution de commandes, telles que rsync. Grâce à Cron, notre système Linux peut exécuter des sauvegardes nocturnes, ou quelle que soit la fréquence souhaitée.

Pour éditer le fichier de table cron de l'utilisateur avec lequel vous êtes connecté, exécutez:

$ crontab -e

Vous devrez vous familiariser avec vi pour pouvoir éditer ce fichier. Tapez "I" pour l'insertion, puis commencez à éditer le fichier de table cron.

Cron utilise la syntaxe suivante: minute de l'heure, heure du jour, jour du mois, mois de l'année, jour de la semaine, commande.

Cela peut être un peu déroutant au début, alors laissez-moi vous donner un exemple. La commande suivante lancera la commande rsync toutes les nuits à 22 heures:

0 22 * * * rsync -av --delete /Directory1/ /Directory2/

Le premier "0" spécifie la minute, et "22" indique 22 heures. Comme nous voulons que cette commande soit exécutée quotidiennement, nous allons laisser les astérisques dans le reste des champs, puis coller la commande rsync.

Une fois que vous avez fini de configurer Cron, appuyez sur échap, puis tapez «: wq» (sans les guillemets) et appuyez sur Entrée. Cela enregistrera vos modifications dans vi.

Cron peut aller beaucoup plus en profondeur que cela, mais continuer sur ce sujet irait au-delà de la portée de ce tutoriel. La plupart des gens voudront simplement une simple sauvegarde hebdomadaire ou quotidienne, et ce que nous avons montré vous permet de le faire facilement. Pour plus d'informations sur Cron, veuillez consulter les pages de manuel.

Autres fonctionnalités utiles

Une autre chose utile à faire est de placer vos sauvegardes dans un fichier zip. Vous devrez spécifier où vous souhaitez placer le fichier zip, puis rsync ce répertoire dans votre répertoire de sauvegarde. Par exemple:

$ zip /ZippedFiles/archive.zip /Directory1/ && rsync -av --delete /ZippedFiles/ /Directory2/

La commande ci-dessus prend les fichiers de Directory1, les met dans / ZippedFiles/archive.zip puis rsyncise ce répertoire dans Directory2. Au début, vous pouvez penser que cette méthode serait inefficace pour les sauvegardes volumineuses, étant donné que le fichier zip changera à chaque fois que la moindre modification est apportée à un fichier. Cependant, rsync ne transfère que les données modifiées. Par conséquent, si votre fichier zip est de 10 Go et que vous ajoutez ensuite un fichier texte à Directory1, rsync saura que c'est tout ce que vous avez ajouté (même s'il se trouve dans un zip) et ne transfère que les quelques kilo-octets. des données modifiées.
La commande ci-dessus prend les fichiers de Directory1, les met dans / ZippedFiles/archive.zip puis rsyncise ce répertoire dans Directory2. Au début, vous pouvez penser que cette méthode serait inefficace pour les sauvegardes volumineuses, étant donné que le fichier zip changera à chaque fois que la moindre modification est apportée à un fichier. Cependant, rsync ne transfère que les données modifiées. Par conséquent, si votre fichier zip est de 10 Go et que vous ajoutez ensuite un fichier texte à Directory1, rsync saura que c'est tout ce que vous avez ajouté (même s'il se trouve dans un zip) et ne transfère que les quelques kilo-octets. des données modifiées.

Il existe différentes manières de chiffrer vos sauvegardes rsync. La méthode la plus simple consiste à installer le chiffrement sur le disque dur lui-même (celui sur lequel vos fichiers sont sauvegardés). Une autre méthode consiste à chiffrer vos fichiers avant de les envoyer à un serveur distant (ou à un autre disque dur, quelle que soit la sauvegarde effectuée). Nous couvrirons ces méthodes dans des articles ultérieurs.

Quelles que soient les options et les fonctionnalités choisies, rsync s’avère l’un des outils de sauvegarde les plus efficaces et les plus polyvalents à ce jour. Même un simple script rsync peut vous éviter de perdre vos données.

Conseillé: