Précédent   Forum des professionnels en informatique > Systèmes > Linux > Applications > Shell
Shell Vos questions sur l'utilisation des commandes shell
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 04/04/2007, 11h54   #1
Rédacteur
 
Inscription : juillet 2004
Messages : 2 573
Détails du profil
Informations personnelles :
Âge : 34

Informations forums :
Inscription : juillet 2004
Messages : 2 573
Points : 1 973
Points : 1 973
Par défaut Petit soucis avec l'utilisation de RETVAL

Bonjour

J'ai une petit soucis avec un script shell qui porte sur le fonctionnement de freebsd-update. Ce script permet de télécharger et installer les mises à jour de FreeBSD et de m'informer par mail de son état d'avancement.

Voici une partie du script en question:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#!/bin/sh
 
# variables
RETVAL=0
logfile=/var/log/freebsd-update.log
top="Bonjour Olivier,\n\n"
foot="\n\nMerci."
 
# fonction pour l'envoi du rapport
sendmail() {
      date=`date +%d/%m/%Y`
      time=`date +%H:%M:%S`
      mail -s "[FreeBSD][System]-ErrorUpdate"-"($date/$time)" <a href="mailto:moi@domain.net">moi@domain.net</a> <$logfile
}
# Exécution de freebsd-update
echo "Installation des mises à jour"
/usr/sbin/freebsd-update install
RETVAL=$?
if [ $RETVAL != 0 ]; then
    echo -e $top"L'installation des mises à jour à échoué."$foot > $logfile
    sendmail
    exit 0
fi
Si le programme freebsd-update est interrompu, je reçois un email me le confirmant. Je reçois également un email lorsque freebsd-update n'a pas de programme à installer car la valeur de retour est égale à 0. Comment pourrais je contourner ce problème ?

Merci
__________________
.Olivier
Olivier Regnier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/04/2007, 10h56   #2
Modérateur
 
Avatar de ggnore
 
Inscription : juillet 2004
Messages : 2 246
Détails du profil
Informations personnelles :
Âge : 33

Informations forums :
Inscription : juillet 2004
Messages : 2 246
Points : 1 903
Points : 1 903
Bonjour olivier.

Peut être que tu pourrais rendre ton freebsd update un peu plus causant avec une option verbose, et que tu pourrais parser ce compte rendu à la recherche d'informations plus claires qu'un code retour.

Il est bizarre ceci dit ce code retour.
0 c'est normalement la valeur quand tout a réussi.

Peut être que ton if est déficient.

J'ai pris pour habitude de comparer les chaînes de caractères plutôt que les valeurs numériques. Dans mes if, j'entoure tout de guillemets.
__________________
Toutes les vertus des hommes se perdent dans l’intérêt comme les fleuves se perdent dans la mer.
ggnore est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/04/2007, 17h59   #3
Rédacteur
 
Inscription : juillet 2004
Messages : 2 573
Détails du profil
Informations personnelles :
Âge : 34

Informations forums :
Inscription : juillet 2004
Messages : 2 573
Points : 1 973
Points : 1 973
Salut

J'ai trouvé une solution qui fonctionne mais un peu barbare à mon goût. Voici le code:
Citation:
result=`/usr/sbin/freebsd-update fetch | grep '^No updates' | awk '{print $1}'

if [ "$result" = "No" ]; then
echo "===> Aucune mise à jour de disponibles"
else
echo "===> Installation des mises à jour"
/usr/sbin/freebsd-update install
fi
Auriez-vous une solution à me proposer ?

Merki
__________________
.Olivier
Olivier Regnier est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h19.


 
 
 
 
Partenaires

Hébergement Web