[ Index ] |
PHP Cross Reference of Unnamed Project |
[Summary view] [Print] [Text view]
1 #!/bin/bash 2 # 3 #### Telechargement automatique des mises a jour wsusoffline en fonction du contenu de /var/se3/unattended/install/wsusoffline/UpdateGenerator.ini ##### 4 # 5 # Auteur : Olivier Lacroix 6 # 7 # mars 2012 8 # olivier-yves-cl.lacroix@ac-montpellier.fr 9 # 10 ## $Id: wsusoffline-download.sh 7121 2012-04-24 15:36:22Z olikin $ ## 11 # 12 13 14 # Mode debug "1" ou "0" 15 DEBUG="1" 16 17 ### on suppose que l'on est sous debian #### 18 WWWPATH="/var/www" 19 ### version debian #### 20 script_charset="UTF8" 21 22 . /usr/share/se3/includes/config.inc.sh -ml 23 24 # parametre proxy a trouver dans se3db : pas trouve a part avec le .pac 25 ipproxy=$(grep "http_proxy=" /etc/profile | head -n 1 | sed -e "s#.*//##;s/\"//") 26 # ipproxy=$(/usr/share/se3/includes/config.inc.sh -cv | grep "proxy_url" | cut -d"/" -f3 | grep -v "proxy_url") 27 28 PARAMS=/var/se3/unattended/install/wsusoffline/UpdateGenerator.ini 29 30 CORRESPONDANCE() 31 { 32 OSLONG=$1 33 PARAM=$2 34 #echo "CORRESPONDANCE execute avec $SECTION $PARAM" 35 [ "$OSLONG" == "Windows XP" ] && echo "wxp" 36 [ "$OSLONG" == "Windows XP x64" ] && echo "wxp-x64" 37 [ "$OSLONG" == "Windows Server 2003" ] && echo "w2k3" 38 [ "$OSLONG" == "Windows Server 2003 x64" ] && echo "w2k3-x64" 39 [ "$OSLONG" == "Windows Vista" ] && echo "w60" 40 [ "$OSLONG" == "Windows Vista x64" ] && echo "w60-x64" 41 [ "$OSLONG" == "Windows 7" ] && echo "w61" 42 [ "$OSLONG" == "Windows 7 x64" ] && echo "w61-x64" 43 # A FAIRE : il faut trouver l'argument pour Windows 2008 server. 44 #[ "$OSLONG" == "Windows Server 2008 R2" ] && echo "w" 45 #echo "OtherSection" 46 } 47 48 MAIL=/tmp/wsusofflinemail 49 [ -e $MAIL ] && rm -f $MAIL 50 51 SENDMAIL() 52 { 53 [ ! -e $MAIL ] && echo "Pas de mail a envoyer" && exit 0 54 OBJET=$1 55 echo "ENVOI DU MAIL SUIVANT A ADMIN :" 56 cat $MAIL 57 echo "OBJET :" 58 echo "$OBJET" 59 mail root -s"$OBJET" < $MAIL 60 #rm -f $MAIL 61 } 62 63 if [ $# -ne 0 ]; then 64 echo "Script a executer sans argument." 65 exit 0 66 fi 67 68 TESTFREESPACE() 69 { 70 PART=`df | grep "/var/se3\$" | sed -e "s/ .*//"` 71 PART_SIZE=$(df -m $PARTROOT | awk '/se3/ {print $4}') 72 if [ "$PART_SIZE" -le 1000 ]; then 73 echo "La partition /var/se3 a moins de 1 Go disponible, c'est insuffisant pour telecharger de nouvelles mises a jour.">$MAIL 74 echo "Merci de liberer de l'espace sur cette partition. Des que cela sera effectue, les mises a jour reprendront automatiquement, tous les soirs.">>$MAIL 75 SENDMAIL "ERREUR WSUSOFFLINE : Place insuffisante sur la partition /var/se3." 76 exit 1 77 fi 78 } 79 80 TESTFREESPACE 81 82 ########### telechargement de la derniere version de wsusoffline si un fichier tag a change sur le svn. ########## 83 [ -e /var/se3/unattended/install/wsusoffline.zip ] && rm -f /var/se3/unattended/install/wsusoffline.zip 84 85 WSUSOFFLINEROOT=http://svn.tice.ac-caen.fr/svn/SambaEdu3/wpkg-packages/files/wsusoffline 86 TEMOIN=/var/se3/unattended/install/wsusoffline/version.txt 87 NEWTEMOIN=/tmp/wsusofflineversion.txt 88 wget -O $NEWTEMOIN $WSUSOFFLINEROOT/version.txt >/dev/null 2>&1 89 SIZEFILE=`ls -la $NEWTEMOIN | awk '{print $5}'` >/dev/null 2>&1 90 if [ "$SIZEFILE" == "0" -o "$SIZEFILE" == "" ]; then 91 echo "Le telechargement de $WSUSOFFLINEROOT/version.txt a echoue. Le proxy est peut etre mal parametre sur le serveur">$MAIL 92 echo "Taille du fichier $NEWTEMOIN: $SIZEFILE">>$MAIL 93 SENDMAIL "ERREUR WSUSOFFLINE : Impossible de verifier si une mise a jour est disponible.." 94 exit 1 95 fi 96 [ -e $NEWTEMOIN ] && TESTNEWTEMOIN=$(md5sum $NEWTEMOIN | cut -d" " -f1) 97 [ -e $TEMOIN ] && TESTTEMOIN=$(md5sum $TEMOIN | cut -d" " -f1) 98 99 #echo "temoin $TESTTEMOIN et newtemoin :$TESTNEWTEMOIN" 100 if [ "$TESTTEMOIN" == "$TESTNEWTEMOIN" ]; then 101 echo "La version de wsusoffline presente est identique a celle du svn." 102 else 103 echo "Une nouvelle version de wsusoffline est disponible sur le svn. Veuillez patienter." 104 echo "Sauf 'ERREUR' signalee dans l'objet, ce mail est envoye a titre d'information et, dans ce cas, aucune action de votre part n'est necessaire...">$MAIL 105 echo "">>$MAIL 106 echo "Une nouvelle version de wsusoffline est disponible sur le svn.">>$MAIL 107 echo "">>$MAIL 108 echo "Debut du telechargement.">>$MAIL 109 wget $WSUSOFFLINEROOT/wsusoffline.zip -O /var/se3/unattended/install/wsusoffline.zip >>$MAIL 2>&1 110 if [ -e /var/se3/unattended/install/wsusoffline.zip ]; then 111 SIZEFILE=`ls -la /var/se3/unattended/install/wsusoffline.zip | awk '{print $5}'` 112 else 113 SIZEFILE="0" 114 fi 115 #echo "SIZEFILE=$SIZEFILE" 116 if [ ! "$SIZEFILE" == "0" ]; then 117 echo "Telechargement accompli.">>$MAIL 118 echo "Tentative de decompression vers /var/se3/unattended/install.">>$MAIL 119 if ( ! unzip -o /var/se3/unattended/install/wsusoffline.zip -d /var/se3/unattended/install/ 2>>$MAIL 1>/dev/null ) ; then 120 echo "Erreur unzip -o /var/se3/unattended/install/wsusoffline.zip" >>$MAIL 121 SENDMAIL "ERREUR : une nouvelle version de wsusoffline est disponible mais la decompression du fichier telecharge a echoue." 122 exit 1 123 else 124 echo "Fin de la decompression.">>$MAIL 125 rm -f /var/se3/unattended/install/wsusoffline.zip 126 echo "Reglage des droits sur les fichiers wsusoffline.">>$MAIL 127 chmod -R ug+rwx /var/se3/unattended/install/wsusoffline >>$MAIL 128 chown -R admin:admins /var/se3/unattended/install/wsusoffline >>$MAIL 129 SENDMAIL "Information : une nouvelle version de wsusoffline a ete telechargee automatiquement afin de proteger au mieux vos pc sous windows." 130 # tout a reussi, on remplace le fichier temoin 131 [ -e $TEMOIN ] && rm -f $TEMOIN 132 mv $NEWTEMOIN $TEMOIN 133 fi 134 else 135 echo "Fichier $WSUSOFFLINEROOT/wsusoffline.zip absent ou vide : le telechargement a echoue.">>$MAIL 136 SENDMAIL "ERREUR : une nouvelle version de wsusoffline est disponible mais le telechargement a echoue." 137 exit 1 138 fi 139 fi 140 141 142 ####### Utilisation du fichier ini renseigné par l'admin et de DownloadUpdates.sh pour recuperer les mises a jour ######### 143 [ ! -e $PARAMS ] && "echo Fichier $PARAMS absent." && exit 0 144 echo "Analyse du fichier $PARAMS." 145 146 echo "Debut du telechargement des mises a jour microsoft : $date.">$MAIL 147 148 cat $PARAMS | while read line 149 do 150 if [ "`echo $line | grep -E "^\[" | grep -E "\]"`" == "" ]; then 151 #[ "$DEBUG" == "1" ] && echo "Ce n'est pas le debut d'une section : $line" 152 PARAMETRE=`echo "$line" | cut -f1 -d "="` 153 VALEUR=`echo "$line" | cut -f2 -d "="` 154 if [ ! "`echo "$VALEUR" | grep "Enabled"`" == "" ]; then 155 #echo "OS=CORRESPONDANCE $SECTION $PARAMETRE" 156 OS=`CORRESPONDANCE "$SECTION" "$PARAMETRE"` 157 [ "$OS" == "" ] && OS="OtherSection" 158 #echo "nom court de l'OS : $OS" 159 # si l'os est office ou options ou autre micellianous : alors gerer le cas en evitant de passer des mauvais arguments. 160 if [ "$PARAMETRE" == "glb" ]; then 161 # glb : global ou fra a passer en parametre ?... 162 LANG="fra" 163 else 164 LANG=$PARAMETRE 165 fi 166 if [ "$ipproxy" == "" ]; then 167 PROXY="" 168 else 169 PROXY="/proxy http://$ipproxy" 170 fi 171 if [ ! "$OS" == "OtherSection" ]; then 172 #echo "Section ignoree : $SECTION." 173 #else 174 echo "Dans la section $SECTION, un parametre est active : $PARAMETRE = $VALEUR" 175 echo "Telechargement des mises a jour pour l'OS $OS et la langue $LANG..." 176 echo "/var/se3/unattended/install/wsusoffline/sh/DownloadUpdates.sh $OS $LANG /msse $PROXY" >>$MAIL 177 TESTFREESPACE 178 /var/se3/unattended/install/wsusoffline/sh/DownloadUpdates.sh $OS $LANG /msse $PROXY >>$MAIL 2>&1 179 fi 180 fi 181 else 182 #[ "$DEBUG" == "1" ] && echo "C'est le debut d'une section : $line" 183 SECTION=`echo "$line" | cut -f2 -d "[" | cut -f1 -d "]"` 184 #[ "$DEBUG" == "1" ] && echo "Section : $SECTION" 185 fi 186 done 187 188 # Envoi d'un mail a l'admin en cas de nouvelles mises a jour trouvees. 189 TEST=`cat $MAIL | grep "successfully downloaded"` 190 if [ ! "$TEST" == "" ]; then 191 SENDMAIL "[Module se3-wpkg : telechargement des mises a jour microsoft par wsusoffline]" 192 else 193 echo "Pas de nouvelle mise a jour telechargee. Pas d'envoi de mail a l'admin." 194 #[ -e $MAIL ] && rm -f $MAIL 195 fi 196 197 198
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Tue Mar 17 22:47:18 2015 | Cross-referenced by PHPXref 0.7.1 |