1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
| #!/bin/sh
# Mise a jour automatique des bases SquidGuard
# repertoire ou se trouve la base de donnees
destdir=/var/lib/squidguard
# repertoire des logs de squid
logdir=/var/log/squid
# fichier de log pour savoir si le telechargement s'est bien deroule
logfile=$logdir/updsgdb.log
# site ftp
ftp_url=ftp://ftp.univ-tlse1.fr/pub/reseau/cache/squidguard_contrib/
# fichier de blacklisting
blfile=blacklists.tar.gz
#gestion d'erreurs et logs
launch() {
cmd=$1
purpose=$2
echo "#$2" | tee -a $logfile
echo $cmd | tee -a $logfile && eval "$cmd >> $logfile 2>&1"
if [ $? -ne 0 ]
then
echo "ERREUR $? : $err" | tee -a $logfile
exit
fi
}
#entete et log
entete() {
cat << EOF
----------------------------------------
TELECHARGEMENT DES BLACKLISTS POUR SQUID
----------------------------------------
`date`
logfile=$logfile
EOF
}
# Chargement des BLACKLISTS
cd $destdir
# entete du fichier journal
entete | tee $logfile
#sauvegarde de l'ancienne blacklist
if [ -f "$destdir/$blfile" ]
then
launch "mv -v $destdir/$blfile $destdir/$blfile.bak" "sauvegarde de l'ancienne blacklist"
fi
#telechargement de la blacklist
launch "wget -N -P $destdir $ftp_url$blfile" "telechargement ftp de la blacklist"
# Decompression du fichier recupere
launch "tar xvzf $destdir/$blfile -C $destdir/blacklists/" "Decompression du fichier downloade"
# suppression de l'archive
launch "rm -v -f $destdir/$blfile" "Suppression de l'archive"
# changement de proprietaire pour que squid puisse fonctionner
# on a maintenant besoin d'une liste
launch "chown -R proxy:proxy $destdir/blacklists $destdir/db" "changement de proprietaire"
# arret de squid
launch "/etc/init.d/squid stop" "Arret de squid"
echo $cmd && eval $cmd
# mise a jour de la base de donnees
launch "/usr/bin/squidGuard -C all" "Mise a jour de la bdd squidguard"
# redemarrage de squid
launch "/etc/init.d/squid start" "Redemarrage de squid" |
Voilà ce que ça donne au final...
Pourtant il manque encore un truc...
Pour mv et rm, j'ai mis -v pour que ça soit en mode verbose.
Cependant, dans mon fichier de log le mode verbose de dit rien.
je pense que c'est cette ligne qui pose problème :
echo $cmd | tee -a $logfile && eval "$cmd >> $logfile 2>&1"
Partager