[Linuxtrent] script che non riesco a far funzionare

  • From: Mario Vittorio Guenzi <jclark@xxxxxxxxxx>
  • To: linuxtrent <linuxtrent@xxxxxxxxxxxxx>
  • Date: Wed, 07 May 2008 10:18:16 +0200

-----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


Other related posts: