Subversion Repositories ALCASAR

Rev

Rev 672 | Rev 873 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log

Rev Author Line No. Line
1 root 1
#! /bin/bash
63 franck 2
# $Id: alcasar-mysql.sh 865 2012-05-01 17:48:31Z richard $
3
 
672 richard 4
# alcasar-mysql.sh
5
# by Franck BOUIJOUX, Pascal LEVANT and Richard REY
6
# This script is distributed under the Gnu General Public License (GPL)
7
 
8
# Gestion (sauvegarde / import / RAZ) de la base MySQL 'radius'. Fermeture des sessions de comptabilité ouvertes
9
# Management of mysql 'radius' database (save / import / RAZ). Close the accounting open sessions
10
 
5 franck 11
rep_tr="/var/Save/base" 	 	# répertoire d'accueil des sauvegardes
386 franck 12
ext="sql"  				# extension des fichiers de sauvegarde
613 richard 13
DB_RADIUS="db_radius"
14
DB_USER="db_user"
15
radiuspwd="radius_pwd"
865 richard 16
new="$(date +%G%m%d-%Hh%M)"  		# date et heure des fichiers
5 franck 17
fichier="$DB_RADIUS-$new.$ext"		# nom du fichier de sauvegarde
1 root 18
 
613 richard 19
stop_acct ()
20
{
21
	date_now=`date "+%F %X"`
22
	echo "UPDATE radacct SET acctstoptime = '$date_now', acctterminatecause = 'Admin-Reset' WHERE acctstoptime IS NULL" | mysql -u$DB_USER -p$radiuspwd $DB_RADIUS
23
 
24
}
25
usage="Usage: alcasar-mysql.sh { -dump or --dump } | { -import or --import } | { -raz or --raz } | { -acct_stop }"
1 root 26
nb_args=$#
27
args=$1
28
if [ $nb_args -eq 0 ]
29
then
30
	nb_args=1
31
	args="-h"
32
fi
33
case $args in
34
	-\? | -h* | --h*)
35
		echo "$usage"
36
		exit 0
37
		;;
386 franck 38
	-dump | --dump)	
1 root 39
		[ -d $rep_tr ] || mkdir -p $rep_tr
40
		if [ -e  $fichier ];
41
			then rm -f  $fichier 
42
		fi
43
		echo "Export de la base 'db_radius' dans le fichier : $fichier"
44
		mysqldump -u $DB_USER -p$radiuspwd --opt -BcQC  $DB_RADIUS > $rep_tr/$fichier
45
		echo "Fin de Sauvegarde mysql $( date "+%Hh %Mmn" )"
46
		;;
386 franck 47
	-import | --import)
1 root 48
		if [ $nb_args -ne 2 ]
49
			then
50
			echo "Entrez le nom d'un fichier SQL (.sql)"
51
			exit 0
52
		else
613 richard 53
			mysql -u $DB_USER -p$radiuspwd < $2
54
			stop_acct	
1 root 55
		fi
56
		;;
386 franck 57
	-raz | --raz)
417 franck 58
		mysqldump -u $DB_USER -p$radiuspwd --opt -BcQC  $DB_RADIUS > $rep_tr/$fichier && \
1 root 59
		mysql -u$DB_USER -p$radiuspwd $DB_RADIUS < /etc/raddb/radiusd-db-vierge.sql
60
		;;
613 richard 61
	-acct_stop)
62
		stop_acct
63
		;;
1 root 64
	*)
65
		echo "Argument inconnu :$1";
66
		echo "$usage"
67
		exit 1
68
		;;
69
esac