Créer un script de sauvegarde Linux

script sauvegarde linux

Sauvegardez ! Sauvegardez ! Sauvegardez ! On ne le dira jamais assez.
Et bonne nouvelle, sur linux, c’est extrêmement simple.
Ce qui l’est moins c’est de trouver les bons logiciels pour le faire, mais avant tout de définir sa stratégie de sauvegarde et de définir ce que l’on est prêt à perdre comme données.
Voyons cela.

Définir sa stratégie de sauvegarde

Nous allons prendre un cas concret : Nous avons un serveur « web » à backuper.
Sur ce serveur il y a :

  • Des fichiers dans le répertoire /home
  • Des bases de données Mysql

Au moins c’est simple.
Tous les jours, nous allons créer une sauvegarde de mysql pour nos bases de données ainsi qu’une archive de nos fichiers dans /home.
Ces fichiers, nous allons les déplacer une un autre serveur, sur une partition montée via iSCSI.

Script de sauvegarde linux

Nous allons créer un script qui s’exécutera quotidiennement (ou une autre fréquence à votre convenance) il est à placer dans le dossier /etc/cron.daily.
On nommera le fichier backup.sh.

Une fois dans le dossier il faut lui donner les droits nécessaires pour l’exécution :

chmod 700 backup.sh

Voici le script :

#!/bin/bash

# date du jour
backupdate=$(date +%Y-%m-%d)

#répertoire de backup
dirbackup=/backup/backup-$backupdate

# création du répertoire de backup
/bin/mkdir $dirbackup

# tar -cjf /destination/fichier.tar.bz2 /source1 /source2 /sourceN
# créé une archive bz2
# sauvegarde de /home
/bin/tar -cjf $dirbackup/home-$backupdate.tar.bz2 /home

# sauvegarde mysql
/usr/bin/mysqldump --user=xxxx --password=xxxx --all-databases | /usr/bin/gzip > $dirbackup/mysqldump-$backupdate.sql.gz

Les commentaires sont normalement suffisants pour comprendre ce qu’il se passe.
A vous maintenant d’adapter ce script à vos besoins.

A noter que le dossier principal de /backup est un point de montage ISCSI. Il serait idiot de backuper les données sur la même machine 🙂

Vous avez aimé cet article ? Réagissez !

Votre email ne sera pas publié. Les champs requis sont marqués d'une astérisque *