Rev 613 | Go to most recent revision | Blame | Last modification | View Log
#! /bin/bash
# $Id: alcasar-mysql.sh 672 2011-07-08 15:34:22Z richard $
# alcasar-mysql.sh
# by Franck BOUIJOUX, Pascal LEVANT and Richard REY
# This script is distributed under the Gnu General Public License (GPL)
# Gestion (sauvegarde / import / RAZ) de la base MySQL 'radius'. Fermeture des sessions de comptabilité ouvertes
# Management of mysql 'radius' database (save / import / RAZ). Close the accounting open sessions
rep_tr="/var/Save/base" # répertoire d'accueil des sauvegardes
ext="sql" # extension des fichiers de sauvegarde
DB_RADIUS="db_radius"
DB_USER="db_user"
radiuspwd="radius_pwd"
new="$(date +%F-%Hh%M)" # date et heure des fichiers
fichier="$DB_RADIUS-$new.$ext" # nom du fichier de sauvegarde
stop_acct ()
{
date_now=`date "+%F %X"`
echo "UPDATE radacct SET acctstoptime = '$date_now', acctterminatecause = 'Admin-Reset' WHERE acctstoptime IS NULL" | mysql -u$DB_USER -p$radiuspwd $DB_RADIUS
}
usage="Usage: alcasar-mysql.sh { -dump or --dump } | { -import or --import } | { -raz or --raz } | { -acct_stop }"
nb_args=$#
args=$1
if [ $nb_args -eq 0 ]
then
nb_args=1
args="-h"
fi
case $args in
-\? | -h* | --h*)
echo "$usage"
exit 0
;;
-dump | --dump)
[ -d $rep_tr ] || mkdir -p $rep_tr
if [ -e $fichier ];
then rm -f $fichier
fi
echo "Export de la base 'db_radius' dans le fichier : $fichier"
mysqldump -u $DB_USER -p$radiuspwd --opt -BcQC $DB_RADIUS > $rep_tr/$fichier
echo "Fin de Sauvegarde mysql $( date "+%Hh %Mmn" )"
;;
-import | --import)
if [ $nb_args -ne 2 ]
then
echo "Entrez le nom d'un fichier SQL (.sql)"
exit 0
else
mysql -u $DB_USER -p$radiuspwd < $2
stop_acct
fi
;;
-raz | --raz)
mysqldump -u $DB_USER -p$radiuspwd --opt -BcQC $DB_RADIUS > $rep_tr/$fichier && \
mysql -u$DB_USER -p$radiuspwd $DB_RADIUS < /etc/raddb/radiusd-db-vierge.sql
;;
-acct_stop)
stop_acct
;;
*)
echo "Argument inconnu :$1";
echo "$usage"
exit 1
;;
esac