-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Buongiorno a tutti, premetto che come realizzatore di script sono un carciofo o poco piu' e che mi sto accuratamente leggendo le 8e rotti pagine di advance bash scripting guide pero' ho la necessita' di mandare in produzione una macchina con uno script che non riesco a far funzionare. Lo script in questione deve fare 2 cose controllare tramite un plugin di nagios se esiste conenttivita' verso la rete e se questa non c'e' spegnere heartbeat. controllo prima che il processo heartbeat sia su Ho preso come parametro di riferimento il pid di heartbeat che ho poi scoperto con raccapriccio che non viene eliminato una volta che il demone ha eseguito lo stop quindi lo cancello Io con lo script. Lo script e' questo : #!/bin/sh -x PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin ### some variables F_HOST=www.google.com S_HOST=www.amazon.com T_HOST=www.corriere.it CHECK="/usr/lib/nagios/plugins/check_http -w 5 -c 10" HBPIDFILE="/var/run/heartbeat.pid" hbalive=0 netalive=0 if [ -n $HBPIDFILE ] then runpid=`cat $HBPIDFILE` hbalive=1 fi $CHECK $F_HOST || $CHECK $S_HOST || $CHECK $T_HOST if [ ! $? ] then netalive=1 fi echo $hbalive $netalive ###se ( hbalive=1 && netalive=0) -> heartbeat stop ###se ( hbalive=0 && netalive=1) -> heartbeat start ### se ambedue sono a 0 (rete giu' heatbeat giu') o a 1 (rete su heartbeat su) non bisogna fare nulla if [ $hbalive -eq $netalive ] then exit 0 fi ### se heartbeat e' giu a seguito di normale down di rete allora deve ripartire se la rete e' attiva if [ $hbalive -lt $netalive ] then /etc/init.d/heartbeat start fi ### se heartbeat e' su e la rete e' giu deve fermarsi per fare partire lo slave if [ $hbalive -gt $netalive ] then /etc/init.d/heartbeat stop && rm -f /var/run/heartbeat.pid exit 0 fi se lo lancio con rete e heartbeat su entrambi ho: perseo:/usr/local/bin# ./connection.sh + PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin + F_HOST=www.google.com + S_HOST=www.amazon.com + T_HOST=www.corriere.it + CHECK='/usr/lib/nagios/plugins/check_http -w 5 -c 10' + HBPIDFILE=/var/run/heartbeat.pid + hbalive=0 + netalive=0 + '[' -f /var/run/heartbeat.pid ']' ++ cat /var/run/heartbeat.pid + runpid=8754 + hbalive=1 + /usr/lib/nagios/plugins/check_http -w 5 -c 10 www.google.com OK - HTTP/1.0 302 Found - 0.131 second response time |time=0.131293s;5.000000;10.000000;0.000000 size=579B;;;0 + '[' '!' 0 ']' + echo 1 0 1 0 + '[' 1 -eq 0 ']' + '[' 1 -lt 0 ']' + '[' 1 -gt 0 ']' + /etc/init.d/heartbeat stop Stopping High-Availability services: Done. + rm /var/run/heartbeat.pid + exit 0 cosa sbaglio? qualsiasi aiuto mi toglie da una scomodissima situazione grazie in anticipo - -- Mario Vittorio Guenzi E-mail jclark@xxxxxxxxxx Si vis pacem, para bellum -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.6 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFIIWXIm6qs1ZkNrIoRAjpWAJ0Wx/a573zUOUeSYHaCaEwTweR9CACfW5KZ N6Srx/nv+eWAN+rrtFblOsg= =8AJp -----END PGP SIGNATURE----- -- Per iscriversi (o disiscriversi), basta spedire un messaggio con OGGETTO "subscribe" (o "unsubscribe") a mailto:linuxtrent-request@xxxxxxxxxxxxx