Vous êtes-vous déjà inquiété de perdre vos données ou vous êtes fatigué d'effectuer des sauvegardes manuelles quotidiennes ou hebdomadaires? Utilisez le rsync commande et synchronisez automatiquement vos fichiers locaux sur un serveur distant aussi souvent que vous le souhaitez sans intervention manuelle. Veuillez noter que ce guide nécessite l'accès à un serveur Linux distant (par ex. AWS) et est écrit sous Ubuntu 20.04 bien que n'importe quelle distribution Linux devrait fonctionner correctement.

Installer rsync

Avant toute chose, vérifiez si oui ou non rsync est installé. Sur votre PC local et votre serveur Web, exécutez cette commande:

rsync --version

Si vous obtenez la version actuelle de rsync en retour, vous êtes prêt pour la section suivante. Sinon, si vous recevez un commande non trouvée erreur, vous pouvez installer rsync avec cette commande:

sudo apt-get -y installer rsync

Générer une clé SSH

Nous utiliserons un Clé SSH pour authentifier la connexion entre notre PC local et le serveur distant. Pour générer une nouvelle clé SSH sur votre PC local dans le terminal, exécutez la commande:

Comment configurer SSH sur Linux et tester votre configuration: guide du débutant

Besoin d'accéder à distance à votre ordinateur ou serveur Linux? Voici comment installer et configurer SSH sur Linux, Windows et mobile.

ssh-keygen -t rsa -b 4096 -f ~/.ssh/rsync.key

Lorsque vous êtes invité à saisir un mot de passe, laissez-le vide et appuyez deux fois sur la touche Entrée. Cela générera deux nouveaux fichiers dans votre ~/.ssh/ répertoire nommé rsync.key qui est la clé privée, et rsync.key.pub, la clé publique.

Configurer le serveur distant

Bien que cela ne soit pas obligatoire, pour ce guide, nous allons créer un nouvel utilisateur sur le serveur distant pour les connexions rsync et pour stocker tous les fichiers de sauvegarde. Connectez-vous au serveur distant via SSH et exécutez cette commande:

sudo useradd -m rsync

L'exemple ci-dessus utilise le nom d'utilisateur rsync, mais vous pouvez le changer en tout ce que vous voulez. Les -m L'option indique simplement à Linux de créer un répertoire personnel pour notre nouvel utilisateur.

Pour permettre à votre PC local de s'authentifier, la clé SSH publique qui a été générée dans la section précédente doit être copiée sur le serveur distant. Ouvrez le /~.ssh/rsync.key.pub fichier dans un éditeur de texte et vous verrez une grande ligne qui ressemble à quelque chose comme.

ssh-rsa utilisateur@hôte

Cette longue ligne est la clé publique SSH. Copiez-le dans votre presse-papiers et exécutez ces commandes sur votre serveur distant:

sudo su rsync
mkdir -m 0700 $HOME/.ssh
echo "ssh-rsa AAAAB... user@host" > $HOME/.ssh/authorized_keys
chmod 0644 $HOME/.ssh/authorized_keys

Dans l'avant-dernière commande, remplacez le texte entre les guillemets par cette longue ligne de clé publique SSH. Ça y est, votre PC local va désormais pouvoir s'authentifier auprès de votre serveur distant.

Configurer le fichier de configuration ssh

Par souci de simplicité, ajoutez une entrée au ~/.ssh/config sur votre PC local pour vous connecter facilement au serveur distant. Ouvrez le fichier sur votre PC local avec la commande.

nano $HOME/.ssh/config

Dans le fichier, ajoutez une entrée pour le serveur distant telle que:

serveur_sauvegarde hôte
 nom d'hôte 192.168.0.24
 rsync de l'utilisateur
 Fichier d'identité ~/.ssh/rsync

Remplacez le nom d'hôte par l'adresse IP de votre serveur distant, et si vous avez utilisé un nom d'utilisateur autre que "rsync", modifiez-le également. Vous pouvez utiliser tout ce que vous souhaitez pour l'hôte, mais pour cet exemple, "backup_server" a été utilisé. Enregistrez et fermez le fichier en appuyant sur Ctrl+X suivi des touches "Y" et Entrée.

Testez votre connexion SSH au serveur distant avec la commande.

ssh backup_server

En supposant que tout soit configuré correctement, vous devriez maintenant être connecté à votre serveur distant via SSH. Fermez la connexion avec la commande.

sortir

Synchronisez vos fichiers

Testez maintenant le rsync fonctionnalité, et par exemple, pour synchroniser votre répertoire Documents sur votre PC local, exécutez la commande:

rsync -avz --progress ~/Documents/ backup_server:~/Documents

La première occurrence de ~/Documents/ spécifie le fichier ou le répertoire local à synchroniser, serveur_sauvegarde correspond à l'entrée ajoutée au ~/.ssh/config fichier, et la fin :~/Documents spécifie simplement de tout télécharger dans le répertoire /Documents du serveur distant par rapport au répertoire de base.

Connectez-vous au serveur distant et vous devriez voir un nouveau répertoire Documents synchronisé avec celui de votre PC local. Chaque fois que vous exécutez la commande ci-dessus, seuls les fichiers qui ont été modifiés depuis la dernière fois seront téléchargés, vous ne téléchargez donc pas constamment l'intégralité du contenu du répertoire.

Automatiser via Crontab

Maintenant que tout est testé et fonctionne correctement, nous pouvons facilement automatiser l'ensemble du processus en ajoutant une tâche crontab à notre PC local. Pour synchroniser automatiquement votre dossier local avec le serveur distant toutes les 15 minutes, exécutez la commande dans le terminal.

(crontab -l; echo "*/15 * * * * rsync -avz --progress ~/Documents/ backup_server:~/Documents > /dev/null 2>&1";) | crontab

Vous pouvez obtenir un message "pas de crontab pour l'utilisateur", et vous pouvez simplement l'ignorer. Changer la Documents répertoire à tout ce que vous souhaitez sauvegarder, mais assurez-vous de laisser une barre oblique de fin pour les répertoires, sinon ils ne seront pas correctement sauvegardés.

Vérifiez que la tâche crontab a été ajoutée avec succès avec la commande.

crontab -l

Si vous voyez le travail crontab qui vient d'être ajouté, alors tout est en place. Attendez 15 minutes, vérifiez votre serveur distant et tous les fichiers nécessaires devraient être là. À partir de maintenant, toutes les modifications apportées à vos fichiers seront automatiquement téléchargées sur le serveur distant toutes les 15 minutes.

Télécharger à partir du serveur distant

Vous pouvez également utiliser rsync pour télécharger des fichiers depuis le serveur distant et les synchroniser avec votre PC local. En utilisant l'exemple de répertoire /Documents ci-dessus, dans le terminal, exécutez la commande:

rsync -chavzP backup_server:~/Documents/ ~/Documents

Les ~./Documents répertoire sur votre PC local devrait maintenant être une image miroir du serveur distant.

Inclure et exclure des modèles

Si jamais vous avez besoin de synchroniser uniquement les fichiers qui correspondent à un certain modèle, comme se terminer par .html vous pouvez utiliser le --comprendre modèle. Dans le terminal, exécutez la commande.

rsync -avz --include "*.html" --progress ~/mysite/ backup_server:~/public_html

Vérifiez le serveur distant et vous verrez que seuls les fichiers avec une extension .html du répertoire local /mysite/ ont été téléchargés dans le répertoire distant /public_html/. De la même manière, vous pouvez également tout synchroniser sauf certains fichiers avec le --exclure option. Par exemple, la commande suivante synchronisera tous les fichiers sauf ceux avec un .SMS extension.

rsync -avz --exclude "*.txt" --progress ~/mysite/ backup_server:~/public_html

Synchroniser deux répertoires locaux

Si jamais nécessaire, vous pouvez également synchroniser deux répertoires locaux avec la commande.

rsync -zvr ~/source/répertoire ~/destination/répertoire

Cette commande fonctionne exactement de la même manière que lors de la synchronisation avec un serveur distant, la seule différence étant qu'il s'agit de deux répertoires locaux.

Reposez-vous tranquillement

Vous pouvez maintenant pousser un soupir de soulagement sachant que vos risques de perte de données sont désormais considérablement plus faibles. Dans cet article, vous avez appris ce que rsync est, comment générer et installer une clé SSH, définir un serveur dans le ~./.ssh/config fichier, synchroniser un répertoire local et distant et automatiser l'ensemble du processus via crontab. À l'avenir, tous les fichiers nécessaires seront toujours synchronisés avec votre serveur distant avec seulement 15 minutes de retard.

E-mail
Comment cloner votre disque dur Linux: 4 méthodes

Besoin de cloner votre disque dur ou partition Linux? Utilisez l'un de ces outils de clonage de lecteur pour cloner votre disque Linux.

Rubriques connexes
  • Linux
  • Sauvegarde de données
  • Linux
  • Sauvegarde sur le cloud
  • Réseau domestique
A propos de l'auteur
Matt Dizak (13 articles publiés)Plus de Matt Dizak

Abonnez-vous à notre newsletter

Rejoignez notre newsletter pour des conseils techniques, des critiques, des ebooks gratuits et des offres exclusives !

Un pas de plus…!

Veuillez confirmer votre adresse e-mail dans l'e-mail que nous venons de vous envoyer.

.