Trucs:Sauvegarde sur ZIP
Tux Punx<tux.punx@tuxfamily.org>
Le script commenté :
#! /bin/sh
# ---------------
# SAUVEGARDE AUTOMATISEE SUR ZIP
# DU REPERTOIRE DE PUBLICATION WEB
# ET DU REPERTOIRE DE STOCKAGE DES BASES MySQL
# TUX PUNX
# 2001-14-08
# ---------------
# #####################
# PARAMETRES PERSONNELS
#
# Point de montage du zip
MountZip="/mnt/zip/"
# Repertoire de publication WEB
WWW="/var/www/html/"
# Repertoire de stockage des bases MySQL
MySQL="/var/wwww/lib/mysql/"
#
# #####################
# Création d'un dossier de stockage temporaire
mkdir /home/$USER/temp/
# Création des différentes archives + recup de leur taille
# Répertoire personnel
tar -cIvf /home/$USER/temp/$USER.tar.bz2 /home/$USER/
a=`ls -l /home/$USER/temp/$USER.tar.bz2 | awk ' { print $5 } '`
# Web
tar -cIvf /home/$USER/temp/www.tar.bz2 $WWW
b=`ls -l /home/$USER/temp/www.tar.bz2 | awk ' { print $5 } '`
# MySQL
tar -cIvf /home/$USER/temp/mysql.tar.bz2 $MySQL
c=`ls -l /home/$USER/temp/mysql.tar.bz2 | awk ' { print $5 } '`
# Message
echo "Archive tar.bz2 du répertoire personnel ($USER) -- OK [taille : $a octets]"
echo "Archive tar.bz2 du répertoire de publication web -- OK [taille : $b octets]"
echo "Archive tar.bz2 du répertoire de stockage des bases MySQL -- OK [taille : $c octets]"
# Poids cumulé de ces archives
somme=`expr $a + $b + $c`
echo "Total cumulé des archives : $somme octets"
stockage=`expr $1 \* 1048576`
echo "Capacité de stockage : $stockage octets"
# Test capacité d'accueil
if [ $somme -lt $stockage ]
then
echo "Capacité de stockage : ----- OK"
echo "Sauvegarde en cours..."
cp -rf /home/$USER/temp/*.* $MountZip
echo "Sauvegarde effectuée".
rm -rf /home/$USER/temp
echo "Nettoyage OK"
else
echo "Capacité de stockage : ----- NOT OK."
echo "Pas assez de place sur votre disquette ZIP $1"
rm -rf /home/$USER/temp
echo "Nettoyage OK"
exit
fi
# ---------------
# SAUVEGARDE AUTOMATISEE SUR ZIP
# TUX PUNX
# 2001-14-08
# ---------------
# ---------------
# SAUVEGARDE AUTOMATISEE SUR ZIP
# DU REPERTOIRE DE PUBLICATION WEB
# ET DU REPERTOIRE DE STOCKAGE DES BASES MySQL
# TUX PUNX
# 2001-14-08
# ---------------
# #####################
# PARAMETRES PERSONNELS
#
# Point de montage du zip
MountZip="/mnt/zip/"
# Repertoire de publication WEB
WWW="/var/www/html/"
# Repertoire de stockage des bases MySQL
MySQL="/var/wwww/lib/mysql/"
#
# #####################
# Création d'un dossier de stockage temporaire
mkdir /home/$USER/temp/
# Création des différentes archives + recup de leur taille
# Répertoire personnel
tar -cIvf /home/$USER/temp/$USER.tar.bz2 /home/$USER/
a=`ls -l /home/$USER/temp/$USER.tar.bz2 | awk ' { print $5 } '`
# Web
tar -cIvf /home/$USER/temp/www.tar.bz2 $WWW
b=`ls -l /home/$USER/temp/www.tar.bz2 | awk ' { print $5 } '`
# MySQL
tar -cIvf /home/$USER/temp/mysql.tar.bz2 $MySQL
c=`ls -l /home/$USER/temp/mysql.tar.bz2 | awk ' { print $5 } '`
# Message
echo "Archive tar.bz2 du répertoire personnel ($USER) -- OK [taille : $a octets]"
echo "Archive tar.bz2 du répertoire de publication web -- OK [taille : $b octets]"
echo "Archive tar.bz2 du répertoire de stockage des bases MySQL -- OK [taille : $c octets]"
# Poids cumulé de ces archives
somme=`expr $a + $b + $c`
echo "Total cumulé des archives : $somme octets"
stockage=`expr $1 \* 1048576`
echo "Capacité de stockage : $stockage octets"
# Test capacité d'accueil
if [ $somme -lt $stockage ]
then
echo "Capacité de stockage : ----- OK"
echo "Sauvegarde en cours..."
cp -rf /home/$USER/temp/*.* $MountZip
echo "Sauvegarde effectuée".
rm -rf /home/$USER/temp
echo "Nettoyage OK"
else
echo "Capacité de stockage : ----- NOT OK."
echo "Pas assez de place sur votre disquette ZIP $1"
rm -rf /home/$USER/temp
echo "Nettoyage OK"
exit
fi
# ---------------
# SAUVEGARDE AUTOMATISEE SUR ZIP
# TUX PUNX
# 2001-14-08
# ---------------
Pour lancer le script : ./NomDuScript
[parametre du zip : 100
ou 250
]
Le paramètre 100 ou 250 est nécessaire au bon fonctionnement de ce script.
Automatisez ce script par un cron
.
Note du modérateur : Pour cela, consultez l'[/admin/automate.php3 article] sur la programmation des travaux