Nous sommes le Jeu 4 Déc 2008 01:36

Heures au format UTC + 1 heure [ Heure d’été ]




Poster un nouveau sujet Répondre au sujet  [ 1 message ] 
Auteur Message
 Sujet du message: [Script] Automatiser la surveillance des patchs Release OVH
MessagePosté: Jeu 31 Juil 2008 12:18 

Inscription: Ven 4 Jan 2008 00:04
Messages: 215
Automatiser la surveillance des patchs Release

Se tenir au courant de la parution de nouvelles mises à jour pouyr les distributions Release1 RedHat et Release2 Gentoo n'est pas facile pour tout le monde (mauvaise ML, etc...). Il est donc pratique d'automatiser cette surveillance. C'est ce que fait ce script : il vérifie à intervalles réguliers (durée paramétrable) si il y a un nouveau patch pour votre release. Si tel est le cas, il vous envoie un email. L'email par défaut est celui saisit dans le manager lors de la réinstallation (voir + bas pour modifier l'email destinataire).

Plus d'informations sur les patch release : http://guide.ovh.net/ReleasePatchSecurite

Installation du script :

Les commandes suivantes sont à faire en SSH via un logiciel tel que Putty (ou équivalent dans Webmin).

Se placer dans /root :

Code:
cd /root


Créer le fichier qui contiendra le script : sélectionner le script (voir + bas), faire un clic droit dessus et cliquer sur "Copier". Lancer en SSH :

Code:
cat >> checkNewRelease.sh


Et faire un "coller" (sous Putty c'est le bouton droit de la souris). Une fois que tout texte s'est collé, terminer en faisant Enter et enfin Ctrl+D.

Donner les droits d'exécution au script (sinon il ne pourra pas vous envoyer d'email) :

Code:
chmod +x  checkNewRelease.sh


Il ne reste plus qu'à automatiser son exécution.

Automatiser tout ça :

On va ajouter le script dans crontab, un programme spécialisé dans l'exécution à intervalles donnés de commandes.

Pour éditer le crontab :

Code:
crontab -e


Et ajouter à votre convenance une des lignes ci-dessous :

Citation:
Exemples d'exécution périodique :

Toutes les minutes (mode TRES parano)
Code:
* * * * *  /root/checkNewRelease.sh


Toutes les 5 minutes (mode parano)
Code:
*/5 * * * *  /root/checkNewRelease.sh


Tous les jours à 11h30, ou autre heure (recommandé) :
Code:
30 11 * * *  /root/checkNewRelease.sh




Le script :

Code:
#!/bin/bash

email=$(cat /root/.email)

rm /tmp/check-release 2>/dev/null

actualversion=$(cat /etc/ovhrelease)

if [[ $(echo $actualversion | cut -f1 -d.) == "1" ]]; then
   wget -q ftp://ftp.ovh.net/made-in-ovh/release/CHANGELOG.release-1 -O /tmp/check-release
   v="1" ;
else
   wget -q ftp://ftp.ovh.net/made-in-ovh/release/CHANGELOG.release-2 -O /tmp/check-release
   v="2" ;
fi

for i in `egrep "la release $v.??" /tmp/check-release | awk {'print $7'} | cut -f2 -d. | sort`; do
   if [[ $actualversion<$i ]]; then
      echo "La nouvelle version : $v.$i" | mail -s "[IMPORTANT] Nouveau patch Release$v dispo pour `hostname` " $email
      rm /tmp/check-release
      exit 1
   fi
done

rm /tmp/check-release

exit 1


Changer l'email de contact :

Si le fichier /root/.email n'existe pas ou que vous souhatez être prévenu sur un autre email, modifier la ligne suivante :

Code:
email=$(cat /root/.email)


Par :

Code:
email="email@fournisseur.com"


Pour être prévenu sur plusieurs adresses mails (il suffit juste de séparer les emails par un espace) :

Code:
email="email1@fournisseur.com email2@fournisseur.com email3@fournisseur.com"


Tester le script :

Se rappeler de la version actuelle de la release :

Code:
cat /etc/ovhrelease
2.13


Ici c'est la version 2.13. "Downgrader" la version :

Code:
echo 2.12 > /etc/ovhrelease


Lancer le script :

Code:
/root/checkNewRelease.sh


Ne pas oublier (IMPORTANT!!!) de remettre la bonne version (sinon quand vous lancerez le patch-all ça risque de tout casser). On remet simplement la version qu'on a obtenu plus haut (2.13) :

Code:
echo 2.13 > /etc/ovhrelease


Et on vérifie qu'on a bien reçu un mail disant :

Citation:
Sujet : [IMPORTANT] Nouveau patch Release2 dispo pour nsXXXX.ovh.net
La nouvelle version : 2.13


Hors ligne
 Profil  
 
Afficher les messages précédents:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 1 message ] 

Heures au format UTC + 1 heure [ Heure d’été ]


 Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages
Vous ne pouvez pas joindre des fichiers

Rechercher:
Aller à:  
 
cron