K1dr3k


Le blog d’un passionné de Linux et des produits OpenSource

BackUp – Sensibilisation à la perte de vos informations



Le but des sauvegardes

Quoi de plus important lorsque l’on héberge un ou plusieurs sites, que d’exporter ses données sur un serveur tiers pour effectuer des sauvegardes. Imaginez si votre serveur se fait défacer ou s’il rencontre un problème matériel ? Comment retrouverez-vous vos données si vous n’effectuez pas de sauvegardes ?


Si vous ne possédez qu’un seul serveur faute de moyen, de nombreuses solutions s’offrent à vous, notamment les serveurs FTP !!

Dans un premier temps, il faut définir les sites à sauvegarder et la meilleur méthode pour le faire.
Nous avons opté pour la compression gzip effectuée grâce à l’utilitaire tar.



Script de compression des données

#!/bin/bash
SAVE_DIR=""
WWW_DIR=""
echo "## Initialisation de la phase de compression des sites"
for i in `ls $WWW_DIR | grep -v  "lost" | grep -v "gz" | grep -v "zip" | grep -v "session" | grep -v "cache"  `
do
        tar cvzf $SAVE_DIR/$i.tar.gz -C $WWW_DIR/ $i
done

WWW_DIR correspond au répertoire contenant les sites ( par exemple /var/www/ ).

SAVE_DIR correspond au répertoire qui comprendra toutes les archives.



Sauvegarde des bases de données

Aussi important, si ce n’est plus, les informations contenues au sein de vos sites !!!

#!/bin/bash
LISTE_TMP="liste_tmp"
MYSQLDUMP=`which mysqldump`
MYSQL=`which mysql`
$MYSQL -e "Show databases" -N > $LISTE_TMP
sed -e "/^mysql$/d" $LISTE_TMP > $LISTE_TMP.bak
mv $LISTE_TMP.bak $LISTE_TMP
sed -e "/^information/d" $LISTE_TMP > $LISTE_TMP.bak
mv $LISTE_TMP.bak $LISTE_TMP
for i in `cat $LISTE_TMP`
do
        echo $i
        $MYSQLDUMP $i > $SAVE_DIR/$i"_"`date "+%u"`".dump"
done
rm -f $LISTE_TMP

Une fois toutes ces données archivées et stockées au sein d’un même endroit, nous allons les exporter sur un serveur distant.



Script d’envoi

Voici le script perl d’envoi des archives sur le serveur distant.

#!/usr/bin/perl -w
use warnings;
use strict;
use Shell;
use Net::FTP;
my $host="ftpxxyy.fr";
my $login="LOGIN";
my $passwd="PASSWORD";
# Etablissement de la connexion FTP
my $ftp = Net::FTP->new($host,Debug=>1, Passive=>0, Timeout=>240) or die "Pb Connexion";
$ftp->login($login, $passwd) or die $ftp->message;
$ftp->cwd("/save");    // Déplacement dans le répertoire save au sein du serveur FTP
$ftp->binary();  // Très important, sinon vos archives tar.gz ne seront plus exploitable lors d'une extraction
my @files = `ls /save_tgz`;  // listing du répertoire local contenant les archives des sites
foreach (@files)
{
        chop ($_);
        print "## Envoi de $_ \n";
        $ftp->put("/save_tgz/$_","$_") or die $ftp->message;
}
# Fermeture de la connexion FTP
$ftp->quit;

Voici une première ébauche qui je l’espère vous sensibilisera sur la sauvegarde impérative de vos informations. Certes il est préférable de placer toutes ces données sensibles sur un serveur perso chez soit, mais lorsque vous n’avez pas les moyens, les serveurs FTP font très bien l’affaire.






Category: Linux - Admin, Linux - Sécurité, Programmation - Shell

Tagged:

Leave a Reply

Page optimized by WP Minify WordPress Plugin