GNU/Linux >> Tutoriels Linux >  >> Linux

Comment configurer une sauvegarde avec rsync sur Ubuntu 18.04

Rsync (Remote sync) est un outil pour copier et synchroniser des fichiers et des dossiers sur le même serveur ou entre différentes machines sous Linux.

Ce qui distingue Rsync du "copier-coller" classique, c'est que cet outil reconnaît automatiquement quels documents diffèrent entre deux dossiers, afin d'accélérer le processus de copie d'un dossier source vers une destination.

Dans cet article, vous apprendrez comment installer, configurer et utiliser Rsync sur Linux Ubuntu 18.04 afin de synchroniser les fichiers et dossiers et planifier une sauvegarde périodique de votre serveur.

Installation

Les packages rsync sont déjà présents dans le référentiel officiel Ubuntu. Pour l'installer tapez :

$ sudo apt install rsync

Syntaxe

$ rsync options /path/source/ /path/destination/

Les options disponibles sont :

  • -v :les fichiers et dossiers copiés seront affichés sur le shell

  • -r :pour copier les dossiers et leur contenu

  • -h :au lieu d'afficher la taille des fichiers copiés en octets, un format facilement lisible sera affiché (au lieu de 14 167 396 octets , 14.17 Mo seront vus)

  • -z :pour compresser les données transférées

  • -a :affiche les informations d'origine du fichier, telles que l'horodatage, les autorisations, le propriétaire, etc.

  • -u :lors de la copie,

  • --delete :rsync supprimera les fichiers du dossier de destination qui ne sont pas présents dans le dossier source.

  • --exclure :certains fichiers ou dossiers seront ignorés lors de la copie.

  • --progress :affiche le pourcentage du processus de copie et le temps restant.

  • --existant :seuls les fichiers déjà existants dans le dossier de destination seront copiés.

Synchroniser deux dossiers sur le même ordinateur

La copie d'un dossier à un autre se fait avec la commande "rsync" suivie du dossier source (à partir duquel les éléments sont copiés) et du dossier de destination. Indépendamment du fait que le dossier à copier contient des dossiers à l'intérieur de , l'ajout de la balise à la balise "-r" est à privilégier :

 $ rsync -r path/source path/destination

L'intégralité du dossier "source" est copié dans le dossier "destination".

 $ rsync -r ~/source/ ~/destination

Le contenu du dossier "source" est copié dans le dossier "destination".

Attention à la différence entre les deux commandes :en écrivant "/" après le dossier source, le système est invité à copier les fichiers contenus dans le dossier.

Ne pas saisir de « / » implique la sélection du dossier entier et, par conséquent, la création d'une copie du dossier source dans le dossier de destination.

Copier des fichiers d'un seul format

Rsync permet également la copie de certains types de fichiers uniquement, en spécifiant le format ou le nom.

En supposant que les fichiers sont au format "txt", tous les fichiers de ce format peuvent être copiés en tapant :

$ rsync path/source_folder/*.txt path/destination_folder

Avec "* .txt", vous avez expressément demandé une copie de "tous les fichiers .pdf".

Copier des fichiers sur le protocole SSH entre deux machines

Vous pouvez également utiliser le protocole SSH pour copier vos fichiers et dossiers de votre ordinateur à un autre. L'utilisation de ce protocole garantit que, lors du transfert, tous les fichiers sont cryptés et que, par conséquent, personne ne pourra les lire.

La commande nécessite l'option "-e ssh" suivie de la source et de la destination de la copie.

$ rsync -r ssh path/source/ [email protected]_machine:/path/destination/

Le mot de passe de l'utilisateur accédant à la machine cible sera requis.

Copier des fichiers en fonction de leur taille

Rsync filtre les fichiers à copier également en fonction de la taille qu'ils occupent sur le disque.

$ rsync --max-size=15k path/source_folder/*.* path/destination_folder/*.*

Seuls les fichiers inférieurs à 15 Ko seront copiés.

Les fichiers plus volumineux seront ignorés.

$ rsync --min-size=20k ~/source_folder/*.* ~/destination_folder/*.*

Seuls les fichiers de plus de 20 Ko seront copiés.
Les fichiers plus petits seront ignorés.

Exclusion de fichiers de la copie basée sur l'extension

Si vous ne souhaitez pas copier certains types de fichiers, vous pouvez utiliser la balise "--exclude" pour exclure certains fichiers de la copie en fonction de l'extension.

Dans l'exemple ci-dessous, les fichiers au format .PDF ne seront pas copiés du dossier "source" vers le dossier "destination".

$ rsync -r --exclude="*.pdf" path/source_folder/ path/destination_folder

Suppression du contenu du dossier source après le transfert

De même, le concept de "couper-coller", avec les fichiers rsync peut être déplacé d'un dossier source vers un dossier de destination. Dans ce cas, les fichiers sont copiés dans le dossier de destination puis supprimés du dossier source.

$ rsync -r --remove-source-files path/source_folder path/destination_folder

Définir la limite du taux de transfert

En cas de copie via le réseau, vous devrez peut-être définir une limite de vitesse de téléchargement pour vos fichiers. Dans ce cas, utilisez la balise "--bwlimit =KBPS", en remplaçant "KBPS" par le taux de transfert souhaité.

$ rsync --bwlimit=KBPS -r ssh source_path/folder [email protected]_receiver:/destination_path

Remplacer "KBPS" par la valeur de vitesse de transfert maximale exprimée en Ko/s (2048 Ko/s =2Mo/s)

Faire des copies périodiques et automatisées

Si vous utilisez rsync pour faire une sauvegarde mais que vous ne voulez pas taper les commandes à chaque fois, il existe un outil parfait pour vous :Cron.

Déjà présent dans Ubuntu 18.04, ce service permet de définir des "règles" pour la répétition périodique de certaines commandes.

Pour commencer à créer vos règles, puis à configurer votre processus de copie automatique, saisissez :

$ crontab -e

Un éditeur de texte où indiquer quelle commande répéter régulièrement s'ouvrira. Une fois les règles définies, enregistrez-les et fermez-les.

Comment configurer une crontab

L'écriture de la crontab doit suivre une syntaxe précise, en spécifiant 6 paramètres ordonnés :

 m h dom mon dow command
  • m :minutes (0-59)

  • h :heures (0-23)

  • dom :jour du mois (1-31)

  • lu :mois (1-12)

  • dow :jour de la semaine (0:dimanche - 6:samedi)

  • command :commande à exécuter

    Exemples de configurations possibles :

     30 * * * * rsync path/source/*.pdf path/destination

    (tous les mois, tous les jours et toutes les heures à 30 minutes, tous les fichiers ".pdf" du dossier "source" seront copiés dans le dossier "destination")

    */2 * * * * rsync chemin/source/*.pdf chemin/destination ( tous les fichiers .pdf présents dans le dossier "source" dans le dossier "destination" sont copiés tous les jours du mois, toutes les 2 minutes)

    50 8 * * 1,3 rsync chemin/source/*.pdf chemin/destination (la commande pour copier les fichiers .pdf dans le dossier "source" dans le dossier "destination" dossier est exécuté du lundi au mercredi à 8h50)

    Une fois enregistré et fermé l'éditeur, pour voir la liste des crontabs tapez :

    $ crontab -l

    Linux
    1. Comment supprimer tous les fichiers avec une extension particulière dans un dossier particulier ?

    2. Comment désactiver sélectivement Rsync ?

    3. Comment sauvegarder le téléphone Ubuntu ?

    4. Comment configurer un pare-feu avec UFW sur Ubuntu 18.04

    5. Comment transférer des fichiers sous Linux avec SCP et Rsync

    Comment sauvegarder des fichiers avec Déjà Dup et Duplicity sur Ubuntu 18.04 LTS

    Comment configurer la sauvegarde Dropbox avec Plesk ?

    Comment configurer le pare-feu avec UFW sur Ubuntu Linux

    Comment installer 7Zip sur Ubuntu 18.04

    Comment installer et configurer un VPN avec OpenVPN sur Ubuntu 18.04

    Comment configurer un serveur de messagerie SMTP avec Postfix sur Ubuntu 18.04