Sziasztok!
CentOS linuxon van egy service ami néha megdöglik. Azt szeretném, hogy ha ez megtörtént akkor induljon újra.
Egy bash scriptet szeretnék írni (ami 5 poercenként lefut) és kb ezt tartalmazza:
if ('service mysqld status' kimenete nem tartalmazza 'is running') {
service mysqld stop
service mysqld start
}
A feltétel résznél akadtam el, tud valaki segíteni? Nem értek bash script íráshoz sajnos.
- 1271 megtekintés
Hozzászólások
OUTPUT=`service mysqld status`
if echo $OUTPUT | grep -w -q "is running" ; then
exit 0
else
service mysql stop
service mysql start
fi
exit 0
Persze hibakezelés nélkül, de hajrá....
Már csak be kell tenni crontab-ba
- A hozzászóláshoz be kell jelentkezni
Kössz! Már be is állítottam!
- A hozzászóláshoz be kell jelentkezni
#!/bin/bash
echo "Mysql socket ellenorzese..."
if [ -S /var/run/mysqld/mysqld.sock ]; then
echo "Socket fajl megvan (vagy a mysql elszallt, de megmarad a socket file)..... OK?"
echo "Tovabbi ellenorzes folyamatban...."
if [ -s /var/run/mysqld/mysqld.pid ]; then
echo "Mysql pid fajl is megvan, a mysql mostmar tuti fut.... OK :)"
echo "Mysql PID number:"; cat /var/run/mysqld/mysqld.pid
fi
else
echo "Hoppa! A MySql NEM fut!!! inditom..."
/etc/init.d/mysql restart
fi
PID-re lehet keresni pgrep-pel is :)
- A hozzászóláshoz be kell jelentkezni
-echo "Mysql PID number:"; cat /var/run/mysqld/mysqld.pid
+PID=`cat /var/run/mysqld/mysqld.pid`
+echo "Mysql PID number: $PID";
+if `kill -0 $PID >/dev/null 2>&1`; then
+ # oke fut ott valami
+ exit 0
+else
+ /etc/init.d/mysql restart
+fi
--
A vegtelen ciklus is vegeter egyszer, csak kelloen eros hardver kell hozza!
- A hozzászóláshoz be kell jelentkezni
egy service csak ugy nem doglik meg. talan egyszerubb lenne megoldani a problemat, mintsem megkerulni.
t
- A hozzászóláshoz be kell jelentkezni
monit szoftvert megnezheted. Monitoroz, ujraindit...
- A hozzászóláshoz be kell jelentkezni