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:
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.
Besoin de cloner votre disque dur ou partition Linux? Utilisez l'un de ces outils de clonage de lecteur pour cloner votre disque Linux.
- Linux
- Sauvegarde de données
- Linux
- Sauvegarde sur le cloud
- Réseau domestique
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.