AM nagios/plc2nagios.py
[monitor.git] / automate_pl03.sh
1 #!/bin/bash
2
3 set -e
4 cd $HOME/monitor/
5 DATE=`date +%Y-%m-%d-%T`
6
7 if [ -f $HOME/monitor/SKIP ] ; then 
8         #       echo "SKIPPING Monitor"
9         #       exit
10         # TODO: should be possible to kill the old version if 
11         # desired and prevent lingering instances of automate.
12         if [ -z "$1" ] ; then 
13                 echo "KILLING Monitor"
14                 PID=`cat $HOME/monitor/SKIP`
15                 rm -f $HOME/monitor/SKIP
16                 ./kill.cmd.sh $PID
17         else 
18                 # skipping monitor
19                 echo "SKIPPING Monitor"
20                 exit
21         fi 
22 fi
23 echo $$ > $HOME/monitor/SKIP
24
25 #########################
26 # 1. FINDBAD NODES 
27 rm -f pdb/production.findbad2.pkl
28 ./findbad.py --increment --cachenodes --debug=0 --dbname="findbad2" $DATE
29
30 ps ax | grep BatchMode | grep -v grep | awk '{print $1}' | xargs kill || :
31
32 ########################
33 # COPY to golf for diagnose.py and action.py
34 cp pdb/production.findbad2.pkl pdb/production.findbad.pkl
35 #scp pdb/production.findbad2.pkl soltesz@golf.cs.princeton.edu:monitor3/pdb/production.findbad.pkl
36
37 ########################
38 # COPY Act_all records
39 #scp soltesz@golf.cs.princeton.edu:monitor3/pdb/production.act_all.pkl pdb/
40
41 ########################
42 # badcsv.txt
43 ./printbadcsv.py  | grep -v loading | tr -d ' ' > badcsv.txt
44 cp badcsv.txt /plc/data/var/www/html/monitor/
45 ./showlatlon.py | head -9 | awk 'BEGIN {print "<table>"} { print "<tr><td>", $0, "</td></tr>"} END{print "</table>"}'  | sed -e 's\|\</td><td>\g' > /plc/data/var/www/html/monitor/regions.html
46
47 #########################
48 # 2. FINDBAD PCUS
49 rm -f pdb/production.findbadpcus2.pkl
50 ./findbadpcu.py --increment --refresh --debug=0 --dbname=findbadpcus2 $DATE             
51
52 ./sitebad.py --increment || :
53 ./nodebad.py --increment || :
54 ./pcubad.py --increment || :
55
56 # clean up stray 'locfg' processes that hang around inappropriately...
57 ps ax | grep locfg | grep -v grep | awk '{print $1}' | xargs kill || :
58
59 # convert pkl to php serialize format.
60 cp pdb/production.findbadpcus2.pkl pdb/production.findbadpcus.pkl
61
62 ./pkl2php.py -i findbadpcus2 -o findbadpcus
63 ./pkl2php.py -i act_all -o act_all
64 ./pkl2php.py -i plcdb_hn2lb -o plcdb_hn2lb
65 ./pkl2php.py -i findbad -o findbadnodes
66 ./pkl2php.py -i ad_dbTickets -o ad_dbTickets
67 ./pkl2php.py -i idTickets -o idTickets
68
69 #for f in findbad act_all findbadpcus l_plcnodes; do 
70 #for f in findbad act_all findbadpcus l_plcnodes site_persistflags ; do 
71 for f in findbad act_all findbadpcus l_plcnodes site_persistflags node_persistflags pcu_persistflags ; do 
72         cp pdb/production.$f.pkl archive-pdb/`date +%F-%H:%M`.production.$f.pkl
73 done
74
75 ./grouprins.py --mail=1 --nodeselect 'state=DEBUG&&boot_state=dbg' \
76                                                 --stopselect 'state=BOOT&&kernel=2.6.22.19-vs2.3.0.34.9.planetlab' \
77                                                 --reboot || :
78
79 rm -f $HOME/monitor/SKIP