Ci-dessous, un script bash de sauvegarde complète de la base Zabbix.
BackupZabbixDBFull.sh (1,17 kb)
#! /bin/bash
#Def de variables
user= »<user> » #Utilisateur de la base de donnees
passwd= »<password> » #Mot de passe de l’utilisateur de la base
db= »zabbixdb » #Nom de la base
dest= »/etc/backup/mysql-full-backup » #Chemin de destination de la sauvegarde (Attention, pas de slash a la fin)
nbsav=5 #Nombre de sauvegardes a conserver
passwd= »<password> » #Mot de passe de l’utilisateur de la base
db= »zabbixdb » #Nom de la base
dest= »/etc/backup/mysql-full-backup » #Chemin de destination de la sauvegarde (Attention, pas de slash a la fin)
nbsav=5 #Nombre de sauvegardes a conserver
#On fabrique les variables systeme
dte=$(date + »%Y-%m-%d–%H-%M-%S »)
fic= »$db/$db-$dte.sql »
#### SCRIPT ####
if [ -d $dest/$db ]
then
echo « On sauvegarde dans $db »
else
echo « On cree le dossier de sauvegarde $dest/$db »
mkdir $dest/$db
fi
then
echo « On sauvegarde dans $db »
else
echo « On cree le dossier de sauvegarde $dest/$db »
mkdir $dest/$db
fi
echo « sauvegarde de la base $db dans $dest/$fic »
ionice -c3 nice -n19 mysqldump -u $user -p$passwd $db > « $dest/$fic »
ionice -c3 nice -n19 mysqldump -u $user -p$passwd $db > « $dest/$fic »
echo « On compresse « $dest/$fic » avec gzip : $fic.gz »
ionice -c3 nice -n19 gzip « $dest/$fic »
ionice -c3 nice -n19 gzip « $dest/$fic »
nbfic=$(ls -C1X $dest/$db/$db* | wc -l)
diff=$(echo $(($nbfic-$nbsav)))
echo « On calcule le nombre de fichiers a supprimer pour ne garder que les $nbsav derniers : $diff »
i=1 #Compteur du for
for f in $(ls -C1X « $dest/$db »)
do
if [ $i -le $diff ]
then
oldsav= »$dest/$db/$f »
echo « On supprime $dest/$db/$f »
rm -f « $dest/$db/$f »
let i++
fi
done
for f in $(ls -C1X « $dest/$db »)
do
if [ $i -le $diff ]
then
oldsav= »$dest/$db/$f »
echo « On supprime $dest/$db/$f »
rm -f « $dest/$db/$f »
let i++
fi
done
0 commentaires