home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.ac-grenoble.fr
/
2015.02.ftp.ac-grenoble.fr.tar
/
ftp.ac-grenoble.fr
/
pub
/
slis
/
updates_rsync
/
slis_update-common
< prev
next >
Wrap
Text File
|
2001-12-02
|
16KB
|
515 lines
#!/bin/bash
# slis_update-common
# Script de mise α jour tΘlΘchargΘ rΘguliΦrement par rsync par tous les
# serveurs SLIS
# This script is part of the SLIS Project initiated by the CARMI-Internet
# (AcadΘmie de Grenoble - France 38).
# Ce script fait partie du projet SLIS dΘmarrΘ par le CARMI-Internet
# (AcadΘmie de Grenoble - France 38).
#
# SLIS : Serveur de communications Linux pour l'Internet Scolaire.
# Copyright (C) 1998-2000 Bruno Bzeznik
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program (For example ./COPYING);
# if not, write to the Free Software Foundation, Inc., 675 Mass Ave,
# Cambridge, MA 02139, USA.
#
# Please send all comments and bug reports by electronic mail to:
# Bruno Bzeznik <Bruno@ac-grenoble.fr>
# or to <slis@ac-grenoble.fr>
#
# Envoyez vos suggestions et reports de bugs par e-mail α
# Bruno Bzeznik <Bruno@ac-grenoble.fr>
# ou α <slis@ac-grenoble.fr>
#
### VARIABLES ###
UPDDIR=/home/hadmin/updates # Rep pour les flags
LOGTAG="slis_update[$$]" # Ce qui apparait en syslog
PAS_UPD_KERNEL=0 # Si ce flag est a un, alors la mise a jour du noyau
# (qui necessite reboot) ne sera pas faite cette fois.
# Recuperation de la variable HOSTNAME :
grep HOSTNAME /etc/sysconfig/network > /tmp/hostname
. /tmp/hostname
rm -rf /tmp/hostname
WEBMASTER=`ls -ld /home/httpd/html |awk '{print $3}'` # Webmaster designΘ par l'admin local
. /home/hadmin/slis.conf
##################
# Gestion d'un lock
if [ -e /var/lock/slis_upd ]
then
logger -t "$LOGTAG" "Deja en cours. Abandon."
exit
fi
touch /var/lock/slis_upd
sleep 1
logger -t "$LOGTAG" "Script Commun Debut"
# Refaire clignoter la led isdn pour le slis version isdn
if [ -e /root/slis/setup.data ]
then
. /root/slis/setup.data
fi
if [ "$ISDN" = "1" ]
then
$SLIS_BINDIR/isdnled tty1 -k
$SLIS_BINDIR/netled tty1 ippp0 -k
sleep 1
$SLIS_BINDIR/isdnled tty1 -d
$SLIS_BINDIR/netled tty1 ippp0 -d
fi
############################################################################
### Mise a jour 101 - 13/09/99
# Mise a l'heure
# Rend obsolete :
############################################################################
if [ ! \( -e $UPDDIR/101 \) ]
then
# Mise a l'heure du Bios
/usr/bin/rdate -s $RDATE_SERVER
/usr/sbin/setclock
touch $UPDDIR/101
logger -t "$LOGTAG" "UPDATE 101 effectuee."
fi
###
############################################################################
### Mise a jour 134 - 02/05/2000
# Nouveau squid_purge (bug de la MAJ 123 --> manque le lancement de prostat)
# Rend obsolete : 123
############################################################################
if [ ! \( -e $UPDDIR/134 \) ]
then
cd /usr/local/sbin
rsync rsync://$RSYNC_HOST/$RSYNC_MODULE/squid_purge .
chmod 755 squid_purge
touch $UPDDIR/134
logger -t "$LOGTAG" "UPDATE 134 effectuee"
fi
###
############################################################################
### Mise a jour 136 - 06/06/2000
# Creation du fichier /etc/service.switch necessaire a sendmail
# Cela evitera des connexions permanentes...
# Rend obsolete :
############################################################################
if [ ! \( -e $UPDDIR/136 \) ]
then
echo "hosts files" > /etc/service.switch
echo "aliases files" >> /etc/service.switch
/etc/rc.d/init.d/sendmail restart
touch $UPDDIR/136
logger -t "$LOGTAG" "UPDATE 136 effectuee"
fi
###
############################################################################
### Mise a jour 138 - 04/07/2000
# Amelioration de l'interface:
# - fonction de suppression des users plus ergonomique
# - ajout d'une fonction de visualisation des entetes des mails
# Rend obsolete :
############################################################################
if [ ! \( -e $UPDDIR/138 \) ]
then
/usr/sbin/usermod -G mail hadmin
killall -HUP httpd
cd /tmp
rsync rsync://$RSYNC_HOST/$RSYNC_MODULE/upd-138.tgz .
cd /
tar zxf /tmp/upd-138.tgz
chown -R hadmin.hadmin /home/hadmin
touch $UPDDIR/138
logger -t "$LOGTAG" "UPDATE 138 effectuee"
fi
###
############################################################################
### Mise a jour C-1 - 16/09/2000
# Bug de users_del* (possibilitΘ de suppression du compte named)
# Rend obsolete :
############################################################################
if [ ! \( -e $UPDDIR/C-1 \) ]
then
cd /tmp
rsync rsync://$RSYNC_HOST/$RSYNC_MODULE/upd-C-1.tgz .
cd /
tar zxf /tmp/upd-C-1.tgz
touch $UPDDIR/C-1
logger -t "$LOGTAG" "UPDATE C-1 effectuee"
fi
###
############################################################################
### Mise a jour C-2b - 26/09/2000
# Nouvelle fonction: replication du web public
# Rend obsolete : C-2
############################################################################
if [ ! \( -e $UPDDIR/C-2b \) ]
then
cd /tmp
rsync rsync://$RSYNC_HOST/$RSYNC_MODULE/upd-C-2.tgz .
cd /
tar zxf /tmp/upd-C-2.tgz
cd /usr/local/sbin
rsync rsync://$RSYNC_HOST/$RSYNC_MODULE/rand60 .
chmod 755 rand60
# Generation d'une heure de replication par defaut aleatoire
declare -i r
r=`/usr/local/sbin/rand60`
if [ $r -ge 0 -a $r -lt 10 ]; then h="21"; fi
if [ $r -ge 10 -a $r -lt 20 ]; then h="22"; fi
if [ $r -ge 20 -a $r -lt 30 ]; then h="23"; fi
if [ $r -ge 30 -a $r -lt 40 ]; then h="00"; fi
if [ $r -ge 40 -a $r -lt 50 ]; then h="01"; fi
if [ $r -ge 50 ]; then h="02"; fi
$SLIS_BINDIR/remplace 22 $h $BASE/pushsite.slis
touch $UPDDIR/C-2b
logger -t "$LOGTAG" "UPDATE C-2b effectuee"
fi
###
############################################################################
### Mise a jour C-3b - 28/09/2000
# Remise en etat de quelques modes
# Rend obsolete : C-3 C-3a
############################################################################
if [ ! \( -e $UPDDIR/C-3b \) ]
then
chown -R root.root /usr/local/bin
chown -R root.root /usr/local/etc
chown hadmin.hadmin /home/hadmin
chown hadmin.hadmin /home/hadmin/*
chmod 755 /home/hadmin
chmod 750 /home/hadmin/*
chmod 755 /home/hadmin/slis.conf.pl
chmod 755 /usr/local/sbin/*
chmod 755 /usr/local/bin/*
touch $UPDDIR/C-3b
logger -t "$LOGTAG" "UPDATE C-3b effectuee"
fi
###
############################################################################
### Mise a jour C-4b - 5/11/2000
# Nouveaux scripts process_routage_net_on et process_routage_net_off plus
# tolerants dans le cas o∙ d'autres filtres existeraient deja.
# C4b: bug de C4: des fichiers restent dans /tmp
# Rend obsolete : C-4
############################################################################
if [ ! \( -e $UPDDIR/C-4b \) ]
then
cd /tmp
rsync rsync://$RSYNC_HOST/$RSYNC_MODULE/upd-C-4.tgz .
cd /
tar zxf /tmp/upd-C-4.tgz
rm -rf /tmp/ipfwadm-Iln.*
touch $UPDDIR/C-4b
logger -t "$LOGTAG" "UPDATE C-4b effectuee"
fi
###
############################################################################
### Mise a jour C-6 - 29/01/2001
# Mise a jour process_routage_net_on/off
# Ajout d'un filtre qui laisse passer http vers les ip officielles locales
# meme pour un sous-reseau dΘsactivΘ.
# Rend obsolete :
############################################################################
if [ ! \( -e $UPDDIR/C-6 \) ]
then
# Telechargement du tar
cd /tmp
rsync rsync://$RSYNC_HOST/$RSYNC_MODULE/upd-C-6.tgz .
cd /
tar zxf /tmp/upd-C-6.tgz
RC=$?
# Verification et fin de la MAJ
if [ $RC = 0 ]
then
touch $UPDDIR/C-6
logger -t "$LOGTAG" "Update C-6 effectuee."
else
logger -t "$LOGTAG" "Update C-6 ECHEC."
fi
fi
###
############################################################################
### Mise a jour C-7b - 08/02/2001
# Creation du slis.conf.php
# Rend obsolete : C-7
############################################################################
if [ ! \( -e $UPDDIR/C-7b \) ]
then
cd /home/hadmin/
echo -e "<?PHP\n" > slis.conf.php
grep "=" slis.conf.pl >> slis.conf.php
echo "\$LANGUAGE=\"french\"" >> slis.conf.php
echo -e "\n?>" >> slis.conf.php
chown hadmin.hadmin slis.conf.php
chmod 755 slis.conf.php
touch $UPDDIR/C-7b
logger -t "$LOGTAG" "UPDATE C-7b effectuee"
fi
###
############################################################################
### Mise a jour C-8 - 30/01/2001
# Un peu de couleur pour les logs
# Rend obsolete :
############################################################################
if [ ! \( -e $UPDDIR/C-8 \) ]
then
cd /tmp
rsync rsync://$RSYNC_HOST/$RSYNC_MODULE/perl-ANSIColor-1.01-2.i386.rpm .
rsync rsync://$RSYNC_HOST/$RSYNC_MODULE/loco-0.32-1.noarch.rpm .
rpm -U --nodeps perl-ANSIColor-1.01-2.i386.rpm
rpm -U --nodeps loco-0.32-1.noarch.rpm
# Verifications et fin de l'install
rpm -q loco 2>/dev/null >/dev/null
RC=$?
if [ $RC = 0 ]
then
if [ "`rpm -qv perl |grep 5.005`" = "" ]
then
ln -s /usr/lib/perl5/site_perl/5.005/Term/ANSIColor.pm /usr/lib/perl5/Term/
fi
R=$RANDOM
cp -f /etc/rc.d/rc.local /etc/rc.d/rc.local.upd-C-8
sed "s;tail -f /var/log/messages >;tail -f /var/log/messages|loco >;" /etc/rc.d/rc.local > /tmp/rc.local.$R
mv -f /tmp/rc.local.$R /etc/rc.d/rc.local
chmod 755 /etc/rc.d/rc.local
killall tail
tail -f /var/log/messages|loco > /dev/console&
if [ "`grep \"tail -f \" /etc/rc.d/rc.local`" = "" ]
then
echo "tail -f /var/log/messages|loco > /dev/console&" >> /etc/rc.d/rc.local
fi
touch $UPDDIR/C-8
logger -t "$LOGTAG" "UPDATE C-8 effectuee"
else
logger -t "$LOGTAG" "UPDATE C-8 ECHEC."
fi
fi
###
############################################################################
### Mise a jour C-9 - 02/02/2001
# Reprogrammation de cron pour une MAJ quotidienne au lieu d'hebdomadaire
# Rend obsolete :
############################################################################
if [ ! \( -e $UPDDIR/C-9 \) ]
then
R=$RANDOM
crontab -l > /tmp/cron.$R
COUNT=`wc -l /tmp/cron.$R|awk '{print $1}'`
tail -`expr $COUNT - 3` /tmp/cron.$R|sed "s;\* 1.*/usr/local/sbin/slis_update.cron;\* \* /usr/local/sbin/slis_update.cron;" > /tmp/cron.new.$R
rm -f /tmp/cron.$R
# Verification et fin de la MAJ
if [ "`wc -l /tmp/cron.new.$R|awk '{print $1}'`" = "`expr $COUNT - 3`" ]
then
crontab /tmp/cron.new.$R
RC=$?
rm -f /tmp/cron.new.$R
if [ "$RC" = "0" ]
then
touch $UPDDIR/C-9
logger -t "$LOGTAG" "Update C-9 effectuee."
else
logger -t "$LOGTAG" "Update C-9 ECHEC."
fi
else
logger -t "$LOGTAG" "Update C-9 ECHEC."
fi
fi
###
############################################################################
### Mise a jour C-10 - 08/02/2001
# Nouveau slis.pac (conf automatique proxy)
# Rend obsolete :
############################################################################
if [ ! \( -e $UPDDIR/C-10 \) ]
then
# Telechargement du tar
cd /tmp
rsync rsync://$RSYNC_HOST/$RSYNC_MODULE/upd-C-10.tgz .
cd /
tar zxf /tmp/upd-C-10.tgz
RC=$?
# Verification et fin de la MAJ
if [ $RC = 0 ]
then
touch $UPDDIR/C-10
logger -t "$LOGTAG" "Update C-10 effectuee."
else
logger -t "$LOGTAG" "Update C-10 ECHEC."
fi
fi
###
############################################################################
### Update C-16 - 01/10/2001
# New update script with a better locking and "freeze" checking
# Obsoletes :
############################################################################
if [ ! \( -e $UPDDIR/C-16 \) ]
then
# Telechargement du tar
cd /tmp
rsync rsync://$RSYNC_HOST/$RSYNC_MODULE/upd-C-16.tgz .
cd /
tar zxf /tmp/upd-C-16.tgz
RC1=$?
/usr/local/sbin/permslis
chmod 755 /usr/local/sbin/slis_update
# Cron modification
R=$RANDOM
crontab -l > /tmp/cron.$R
COUNT=`wc -l /tmp/cron.$R|awk '{print $1}'`
tail -`expr $COUNT - 3` /tmp/cron.$R|sed "s;slis_update\.cron;slis_update;" > /tmp/cron.new.$R
rm -f /tmp/cron.$R
if [ "`wc -l /tmp/cron.new.$R|awk '{print $1}'`" = "`expr $COUNT - 3`" ]
then
crontab /tmp/cron.new.$R
RC2=$?
rm -f /tmp/cron.new.$R
fi
# Verification et fin de la MAJ
if [ $RC1 = 0 -a $RC2 = 0 ]
then
touch $UPDDIR/C-16
mv /usr/local/sbin/slis_update.cron /usr/local/sbin/slis_update.cron.obsolete
logger -t "$LOGTAG" "Update C-16 done."
else
logger -t "$LOGTAG" "Update C-16 FAILED."
fi
fi
###
############################################################################
### Update C-16b - 03/10/2001
# Fixes a little bug of C16 (obsolete use of slis_update.cron in rc.local)
# Obsoletes :
############################################################################
if [ ! \( -e $UPDDIR/C-16b \) ]
then
R=$RANDOM
sed "s;slis_update\.cron;slis_update;" /etc/rc.d/rc.local > /tmp/rc.local.$R
cp -f /etc/rc.d/rc.local /etc/rc.d/rc.local.C-16b
mv -f /tmp/rc.local.$R /etc/rc.d/rc.local
chmod 755 /etc/rc.d/rc.local
touch $UPDDIR/C-16b
logger -t "$LOGTAG" "Update C-16b done."
fi
###
############################################################################
### Mise a jour BASES SQUIDGUARD - Permanente (toutes les semaines)
# ATTENTION: Laisser cette UPD en fin de fichier, avant les UPD KERNEL.
# Il faut mirrorrer
# ftp://ftp.univ-tlse1.fr/pub/reseau/cache/squidguard_contrib
# dans le rep tftp des MAJ SLIS.
# Il faut aussi maintenir la base academie.tar.gz
############################################################################
if [ -e /usr/local/squid/squidGuard/db ]
then
logger -t "$LOGTAG" "RECUPERATION BASES FILTRES URL: debut"
cd /usr/local/squid/squidGuard/db
rsync rsync://$RSYNC_HOST/$RSYNC_MODULE/adult.tar.gz .
rsync rsync://$RSYNC_HOST/$RSYNC_MODULE/warez.tar.gz .
rsync rsync://$RSYNC_HOST/$RSYNC_MODULE/forums.tar.gz .
rsync rsync://$RSYNC_HOST/$RSYNC_MODULE/publicite.tar.gz .
rsync rsync://$RSYNC_HOST/$RSYNC_MODULE/academie.tar.gz .
logger -t "$LOGTAG" "Installation des bases."
tar zxf adult.tar.gz
tar zxf warez.tar.gz
tar zxf forums.tar.gz
tar zxf publicite.tar.gz
tar zxf academie.tar.gz
chown -R nobody.nobody *
/usr/local/squid/bin/squidGuard -C /usr/local/squid/squidGuard/db/adult/domains
/usr/local/squid/bin/squidGuard -C /usr/local/squid/squidGuard/db/adult/urls
/usr/local/squid/bin/squidGuard -C /usr/local/squid/squidGuard/db/warez/domains
/usr/local/squid/bin/squidGuard -C /usr/local/squid/squidGuard/db/warez/urls
/usr/local/squid/bin/squidGuard -C /usr/local/squid/squidGuard/db/forums/domains
/usr/local/squid/bin/squidGuard -C /usr/local/squid/squidGuard/db/forums/urls
/usr/local/squid/bin/squidGuard -C /usr/local/squid/squidGuard/db/publicite/domains
/usr/local/squid/bin/squidGuard -C /usr/local/squid/squidGuard/db/publicite/urls
/usr/local/squid/bin/squidGuard -C /usr/local/squid/squidGuard/db/academie/domains
/usr/local/squid/bin/squidGuard -C /usr/local/squid/squidGuard/db/academie/urls
logger -t "$LOGTAG" "Redemarrage du cache."
killall -HUP squid
logger -t "$LOGTAG" "RECUPERATION BASES FILTRES URL: fin"
fi
###
##############################
logger -t "$LOGTAG" "Script Commun Termine."
/bin/rm -rf /var/lock/slis_upd