Sauvegarder les données de mon serveur VPS - exemple de scripts

Voici quelques exemples de scripts qui vous permettront de sauvegarder facilement tous les documents stockés sur votre serveur VPS :

Exemple 1 : Sauvegarde simple

Attention, cette exemple n'efface pas vos anciennes backups. Il est conseillé de vérifier l'espace disque disponible sur votre solution de backup.

Attention, ce script néssésite d'avoir de la place disponible sur votre serveur VPS. Un espace libre égale à la place prise par les dossiers que vous souhaité sauvegarder est conseillé.

Ce premier exemple est une solution de sauvegarde de votre VPS simple. Elle se base sur les programmes tar (archivage) et ncftp (client ftp).

La sauvegarde simple est assez lente s'il y a beaucoup de fichiers à sauvegarder. Elle consomme, de plus, beaucoup d'espace sur le serveur FTP comparer à d'autres solutions.

La restauration est simple, il suffit d'appliquer la dernière sauvegarde.

Le programme tar est installé de base sur la plus part des distribution. Le programme ncftp n'est généralement pas installé par défaut. Voici les instructions pour installer ncftp:

Sur une distribution debian (ISPConfig, Prestashop) ou ubuntu :

apt-get install ncftp

Sur une distribution CentOS :

rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/ncftp-3.2.2-1.el5.i386.rpm

Copiez et enregistrez le contenu suivant dans le fichier /root/backup.sh sur votre serveur.

Script backup.sh

#!/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

##
## Example de Script de sauvegarde
##
## LWS ( http://lws.fr/ )
##

##
## Configuration
##

# Répertoire a sauvegarder
REPERTOIRES="/var /home"

# Parametre FTP
FTP_SERVEUR="192.168.2.242"
FTP_UTILISATEUR="client_ftp"
FTP_PASSWORD="123456"
FTP_REPERTOIRE="/backup/"

##
## Parametrage des applications
##

# backup
REPERTOIRE_BACKUP="/tmp/backup/"
BACKUP="backup.tar.gz"

# tar
TAR_OPTIONS="--exclude=$REPERTOIRE_BACKUP --exclude=/dev --exclude=/proc --exclude=/sys"

# date
DATE=$(date +"%Y-%m-%d")
  
##
## Creation de la sauvegarde
##

mkdir -p ${REPERTOIRE_BACKUP}
mkdir -p /var/backup/
tar ${TAR_OPTIONS} -zcvf ${REPERTOIRE_BACKUP}/${BACKUP} $REPERTOIRES

##
## Envoi de la sauvegarde
##

ncftp -u"$FTP_UTILISATEUR" -p"$FTP_PASSWORD" $FTP_SERVEUR <<EOF
mkdir $FTP_REPERTOIRE
mkdir $FTP_REPERTOIRE/$DATE
cd $FTP_REPERTOIRE/$DATE
lcd $REPERTOIRE_BACKUP
mput *
quit
EOF

rm -rf $REPERTOIRE_BACKUP

Configurez le script en l'éditant :

La variable REPERTOIRES contient le chemin d'accès des répertoires à sauvegarder. Les répertoires /var et /home sont généralement les deux répertoires contenant des données utilisateurs.

# Répertoire a sauvegarder
REPERTOIRES="/var /home"

Les variables FTP_ contient les paramètres de connexions à votre compte FTP de backup. FTP_REPERTOIRE est le répertoire où sera sauvegardé vos backup sur votre compte FTP.

# Parametre FTP
FTP_SERVEUR="192.168.1.250"
FTP_UTILISATEUR="client_ftp"
FTP_PASSWORD="12345678"
FTP_REPERTOIRE="/backup/"

Rendez exécutable le script backup.sh :

chmod +x /root/backup.sh

Puis ajoutez une entré dans les tâches cron :

crontab -e 

Si vous désirez réalisé une sauvegarde tout les jours à 3 heure du matin, ajoutez l'entrée suivante :

0 3 * * * /root/backup.sh >/dev/null 2>&1

Si vous désirez réalisé une sauvegarde tout les dimanches à 3 heure du matin, ajoutez l'entrée suivante :

0 3 * * 0 /root/backup.sh >/dev/null 2>&1

Exemple 2 : Sauvegarde incrémentale

Attention, cette exemple n'efface pas vos anciennes backups. Il est conseillé de vérifier l'espace disque disponible sur votre solution de backup.

Attention, ce script néssésite d'avoir de la place disponible sur votre serveur VPS. Un espace libre égale à la place prise par les dossiers que vous souhaité sauvegarder est conseillé.

L'exemple 2 reprends l'exemple 1 mais y ajoute la sauvegarde incrémentale.

La sauvegarde incrémentale ne sauvegarde que les fichiers modifiés après avoir réaliser une sauvegarde complète. Il est conseillé de réaliser une sauvegarde complète de temps en temps.

Cette solution permet d'avoir des sauvegardes régulièrement à jour tout en consommant moins d'espace que des sauvegardes complètes aussi régulière. Les sauvegardes incrémentales sont aussi plus rapide.

Toutefois, la restauration est plus compliquée. En effet, il est nécessaire, en cas de restauration, d'appliquer la dernière sauvegarde complète puis toutes les sauvegardes incrémentales depuis cette dernière sauvegarde complète.

Dans cette exemple, nous effectuerons une sauvegarde complète le premier dimanche de chaques mois puis des sauvegardes incrémentales chaque jour.

Reprenez l'exemple 1 execepté la partie concernant les tâches cron.

Editez le fichier /root/backup.sh et modifiez le paramètre TAR_OPTIONS comme ceci :

# tar
TAR_OPTIONS="-g /var/backup/incremental_tar.data --exclude=/var/backup/ --exclude=$REPERTOIRE_BACKUP --exclude=/dev --exclude=/proc --exclude=/sys"

Ajoutez ensuite deux entrées dans votre liste de tâches cron :

crontab -e

La premiere entrée réalise les sauvegardes chaques jours à 3 heure du matin :

0 3 * * * /root/backup.sh >/dev/null 2>&1

La seconde entrée effacera le fichier /var/backup/incremental_tar.data le premier dimanche de chaque jour. Le programme tar réalisant la sauvegarde ne connaitra plus les fichiers déjà sauvegardé et réalisera alors une nouvelle sauvegarde complète.

0 2 1-7 * 0 rm -rf /var/backup/incremental_tar.data
sauvegarder_les_donnees_de_mon_serveur_vps_-_exemple_de_scripts.txt · Dernière modification: 2011/11/25 15:40 (modification externe)
Haut de page
CC Attribution-Noncommercial-Share Alike 3.0 Unported
chimeric.de = chi`s home Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0