Sauvegarde avec rsync
et scp
1. Pourquoi la sauvegarde est-elle importante ?
Aujourd'hui, on va parler d'une des tâches les plus importantes pour tous ceux qui bossent dans le monde de l'IT et de la programmation : sauvegarder ses données. Si tu as déjà perdu des données importantes à cause d'une panne de disque ou d'une erreur, tu sais à quel point c'est critique. Et si ça ne t'est jamais arrivé, on est là pour prévenir les dégâts !
Imagine : tu bosses sur un projet depuis des mois, et un beau jour, ton disque dur décide de faire grève. Ouais, c'est aussi frustrant qu'oublier un point-virgule à la fin d'une requête SQL, mais mille fois pire. Les systèmes ne sont pas fiables, les humains font des erreurs, et les fichiers disparaissent. La sauvegarde te permet d'être prêt à affronter ces mauvaises surprises.
Sous Linux, il existe plusieurs outils puissants pour sauvegarder. Aujourd'hui, on va se concentrer sur deux d'entre eux : rsync
et scp
.
2. Commande rsync
: un outil rapide et malin pour copier des données
rsync
est l'un des outils les plus populaires pour copier et synchroniser des données. Sa principale force réside dans sa rapidité et son efficacité. Au lieu de tout copier, rsync
ne copie que les fichiers modifiés. Cela en fait un choix idéal pour effectuer des sauvegardes régulières de grandes quantités de données.
Syntaxe de rsync
Voici le format de base de la commande :
rsync [options] source destination
Où :
source
— le chemin vers le fichier ou dossier que tu veux copier.destination
— l'endroit où tu veux envoyer ces données.
Options principales et leur fonction
Voici quelques options souvent utilisées :
-a
(archive) : inclut la copie de tous les métadonnées (permissions, timestamps, etc.).-v
(verbose) : active une sortie détaillée pour que tu puisses voir ce qui se passe.--progress
: montre la progression du transfert (super utile pour les gros fichiers).--delete
: supprime côté destination les fichiers qui ne sont plus présents côté source. Pratique pour une synchronisation complète.-z
(compress) : compresse les données avant de les transmettre, ce qui accélère le processus (particulièrement important pour les opérations en réseau).
Exemple : copie de données locales
Créons un répertoire /backup
pour stocker les sauvegardes.
mkdir /backup
Copions tout le contenu du répertoire /home
dans /backup
:
rsync -av /home /backup
Décomposons cet exemple :
-a
préserve la structure et les permissions des fichiers.-v
fournit des informations sur le processus en cours.
Si tu relances la commande, elle ne copiera que les fichiers modifiés ou nouveaux.
Exemple : sauvegarde distante
Maintenant, supposons que tu veuilles envoyer une sauvegarde vers un serveur distant. Pour cela, rsync
prend en charge l'utilisation de SSH.
rsync -av /backup user@remote_server:/remote_backup
Où :
user
— le nom d'utilisateur sur le serveur distant.remote_server
— l'adresse de ton serveur distant (par exemple, une adresse IP ou un nom de domaine)./remote_backup
— le chemin sur le serveur où tu veux sauvegarder les données.
Si tu as une clé SSH pour l'autorisation, le transfert sera encore plus simple (et sécurisé).
3. La commande scp
: simple et efficace
scp
(Secure Copy Protocol) est un outil pour copier des fichiers entre une machine locale et une machine distante. C’est un peu plus simple que rsync
, et convient aux cas où une synchronisation complète n’est pas nécessaire.
Syntaxe de scp
Voici le format de base de la commande :
scp [options] source destination
Où :
source
— chemin vers le fichier que vous voulez copier.destination
— adresse où il doit être envoyé.
Options principales et leurs fonctions
Quelques options utiles :
-r
: copie récursive pour les dossiers.-C
: compresse les fichiers avant le transfert.-P
: spécifie un port SSH si différent du port par défaut (22).
Exemple : copier un fichier sur une machine distante
Vous voulez transférer des fichiers depuis votre ordinateur local vers un serveur. Supposons que le fichier s'appelle document.txt
.
scp document.txt user@remote_server:/remote_folder
Si le fichier est dans le dossier /home/user/documents
, la commande ressemblera à ceci :
scp /home/user/documents/document.txt user@remote_server:/remote_folder
Le fichier sera alors disponible sur la machine distante dans le dossier /remote_folder
.
Exemple : copier des fichiers depuis un serveur vers la machine locale
Le processus fonctionne dans l'autre sens :
scp user@remote_server:/remote_folder/document.txt /home/user/documents
Ainsi, le fichier document.txt
se retrouvera dans votre dossier local.
4. Différences entre rsync
et scp
Bien que les deux commandes permettent de copier des fichiers, elles ont leurs propres particularités.
Particularité | rsync | scp |
---|---|---|
Vitesse | Seuls les fichiers modifiés, plus rapide pour de gros volumes | Copie tout, même si les fichiers n'ont pas changé |
Synchronisation | Support complet de la synchronisation | Ne supporte pas la synchronisation |
Compression des données | Option disponible -z |
Option disponible -C |
Simplicité d'utilisation | Plus complexe à configurer | Interface simple |
Donc, si tu veux juste transférer rapidement un fichier, utilise scp
. Si tu as besoin de synchronisations régulières ou de gérer de gros volumes de données, alors rsync
est le choix évident.
5. Exemple concret : configuration d'une sauvegarde
Voici un exercice pratique : tu veux configurer un processus complet de sauvegarde de ton projet sur un serveur distant.
Supposons que tes fichiers de projet sont stockés dans le dossier
/home/user/project
. Tu veux qu'ils soient sauvegardés sur le serveurbackup.server.com
dans le dossier/backups/project
.Pour que la copie soit plus rapide, on va utiliser
rsync
.
Configuration du script de sauvegarde
Crée un fichier nommé backup.sh
:
#!/bin/bash
SOURCE="/home/user/project"
DESTINATION="user@backup.server.com:/backups/project"
# Effectue une sauvegarde avec rsync
rsync -av --delete "$SOURCE" "$DESTINATION"
# Affiche un message de fin
echo "Sauvegarde terminée !"
Rends le fichier exécutable :
chmod +x backup.sh
Tu peux maintenant exécuter ce script manuellement :
./backup.sh
Ou l'ajouter à cron
pour une exécution automatique (on parlera de cron plus tard dans le cours).
6. Erreurs typiques et comment les éviter
Chemins incorrects dans la ligne de commande. Si tu indiques un mauvais chemin vers les fichiers,
rsync
ouscp
ne copieront rien. Utilise les commandesls
oupwd
pour vérifier la validité des chemins.Absence de clé d'autorisation. Si tu utilises SSH sans clé configurée, un mot de passe te sera demandé à chaque fois. Configure des clés SSH pour simplifier le processus.
Interruption de la sauvegarde. Si le réseau est instable,
rsync
finalisera quand même le transfert au prochain lancement. Par contre, avecscp
, il faudra tout recommencer.
Avec rsync
et scp
, tu peux copier et synchroniser tes données en toute confiance, que ce soit sur ton ordinateur local ou des serveurs distants. Ces outils sont tes compagnons fiables quand il s’agit de protéger des fichiers importants.
GO TO FULL VERSION