Subversion Repositories ALCASAR

Rev

Rev 613 | Rev 865 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log

Rev 613 Rev 672
1
#! /bin/bash
1
#! /bin/bash
2
# $Id: alcasar-mysql.sh 613 2011-05-23 22:02:37Z richard $
2
# $Id: alcasar-mysql.sh 672 2011-07-08 15:34:22Z richard $
-
 
3
 
-
 
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
3
 
10
 
4
## Script de sauvegarde de la base MySQL 'radius' (by rexy)
-
 
5
rep_tr="/var/Save/base" 	 	# répertoire d'accueil des sauvegardes
11
rep_tr="/var/Save/base" 	 	# répertoire d'accueil des sauvegardes
6
ext="sql"  				# extension des fichiers de sauvegarde
12
ext="sql"  				# extension des fichiers de sauvegarde
7
DB_RADIUS="db_radius"
13
DB_RADIUS="db_radius"
8
DB_USER="db_user"
14
DB_USER="db_user"
9
radiuspwd="radius_pwd"
15
radiuspwd="radius_pwd"
10
new="$(date +%F-%Hh%M)"  		# date et heure des fichiers
16
new="$(date +%F-%Hh%M)"  		# date et heure des fichiers
11
fichier="$DB_RADIUS-$new.$ext"		# nom du fichier de sauvegarde
17
fichier="$DB_RADIUS-$new.$ext"		# nom du fichier de sauvegarde
12
 
18
 
13
stop_acct ()
19
stop_acct ()
14
{
20
{
15
	date_now=`date "+%F %X"`
21
	date_now=`date "+%F %X"`
16
	echo "UPDATE radacct SET acctstoptime = '$date_now', acctterminatecause = 'Admin-Reset' WHERE acctstoptime IS NULL" | mysql -u$DB_USER -p$radiuspwd $DB_RADIUS
22
	echo "UPDATE radacct SET acctstoptime = '$date_now', acctterminatecause = 'Admin-Reset' WHERE acctstoptime IS NULL" | mysql -u$DB_USER -p$radiuspwd $DB_RADIUS
17
 
23
 
18
}
24
}
19
usage="Usage: alcasar-mysql.sh { -dump or --dump } | { -import or --import } | { -raz or --raz } | { -acct_stop }"
25
usage="Usage: alcasar-mysql.sh { -dump or --dump } | { -import or --import } | { -raz or --raz } | { -acct_stop }"
20
nb_args=$#
26
nb_args=$#
21
args=$1
27
args=$1
22
if [ $nb_args -eq 0 ]
28
if [ $nb_args -eq 0 ]
23
then
29
then
24
	nb_args=1
30
	nb_args=1
25
	args="-h"
31
	args="-h"
26
fi
32
fi
27
case $args in
33
case $args in
28
	-\? | -h* | --h*)
34
	-\? | -h* | --h*)
29
		echo "$usage"
35
		echo "$usage"
30
		exit 0
36
		exit 0
31
		;;
37
		;;
32
	-dump | --dump)	
38
	-dump | --dump)	
33
		[ -d $rep_tr ] || mkdir -p $rep_tr
39
		[ -d $rep_tr ] || mkdir -p $rep_tr
34
		if [ -e  $fichier ];
40
		if [ -e  $fichier ];
35
			then rm -f  $fichier 
41
			then rm -f  $fichier 
36
		fi
42
		fi
37
		echo "Export de la base 'db_radius' dans le fichier : $fichier"
43
		echo "Export de la base 'db_radius' dans le fichier : $fichier"
38
		mysqldump -u $DB_USER -p$radiuspwd --opt -BcQC  $DB_RADIUS > $rep_tr/$fichier
44
		mysqldump -u $DB_USER -p$radiuspwd --opt -BcQC  $DB_RADIUS > $rep_tr/$fichier
39
		echo "Fin de Sauvegarde mysql $( date "+%Hh %Mmn" )"
45
		echo "Fin de Sauvegarde mysql $( date "+%Hh %Mmn" )"
40
		;;
46
		;;
41
	-import | --import)
47
	-import | --import)
42
		if [ $nb_args -ne 2 ]
48
		if [ $nb_args -ne 2 ]
43
			then
49
			then
44
			echo "Entrez le nom d'un fichier SQL (.sql)"
50
			echo "Entrez le nom d'un fichier SQL (.sql)"
45
			exit 0
51
			exit 0
46
		else
52
		else
47
			mysql -u $DB_USER -p$radiuspwd < $2
53
			mysql -u $DB_USER -p$radiuspwd < $2
48
			stop_acct	
54
			stop_acct	
49
		fi
55
		fi
50
		;;
56
		;;
51
	-raz | --raz)
57
	-raz | --raz)
52
		mysqldump -u $DB_USER -p$radiuspwd --opt -BcQC  $DB_RADIUS > $rep_tr/$fichier && \
58
		mysqldump -u $DB_USER -p$radiuspwd --opt -BcQC  $DB_RADIUS > $rep_tr/$fichier && \
53
		mysql -u$DB_USER -p$radiuspwd $DB_RADIUS < /etc/raddb/radiusd-db-vierge.sql
59
		mysql -u$DB_USER -p$radiuspwd $DB_RADIUS < /etc/raddb/radiusd-db-vierge.sql
54
		;;
60
		;;
55
	-acct_stop)
61
	-acct_stop)
56
		stop_acct
62
		stop_acct
57
		;;
63
		;;
58
	*)
64
	*)
59
		echo "Argument inconnu :$1";
65
		echo "Argument inconnu :$1";
60
		echo "$usage"
66
		echo "$usage"
61
		exit 1
67
		exit 1
62
		;;
68
		;;
63
esac
69
esac
64
 
70