Toon posts:

[linux]scripts om te kijken of httpd down is

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik wil een script maken die kijkt of httpd up of down is. Als httpd down is, moet hij hem restarten....

hoe pak ik dit het beste aan?, cgi??? het moet in de crontab gaan meedraaien.

met welk commando kan ik dit het beste doen?

Verwijderd

/sbin/service httpd status

Verwijderd

Topicstarter
Op maandag 17 juni 2002 10:34 schreef beelzebubu het volgende:
/sbin/service httpd status
hmmm... hij geeft wel wat aan, references???? geen idee wat dat mag zijn en tevens geeft hij het 404 document aan?

maar goed, hoe dit ik dit in cgi??

if (!/sbin/service httpd status == ""){
restart server;
}


?

  • Platel
  • Registratie: Oktober 2000
  • Laatst online: 11-08 02:10

Platel

Trogdor the Burninator!

Voor fetchmail heb ik het zo gedaan:
code:
1
2
3
4
5
6
7
8
9
10
11
12
#! /bin/sh

ADMIN=platel

if [ `ps awx | grep -c 'fetchmail -d 60'` -eq 1 ]; then
fetchmail -d 60 -f /root/.fetchmailrc
mail -s "fetchmail('uname -n') restarted @ `date`" $ADMIN << EOF
Fetchmail had to be restarted.
EOF
fi

exit 0

Dat kun je natuurlijk ook zo doen met httpd

Remember there are no stupid questions, just stupid people...


  • MadEgg
  • Registratie: Februari 2002
  • Laatst online: 00:42

MadEgg

Tux is lievvv

Waarom maakt iedereen scriptjes voor services die down gaan?
Een service hoort toch niet vanzelf down te gaan? Is het dan niet een beter idee om te zorgen dat ie wat stabieler wordt? En imho is Apache stabiel, hier nog nooit gecrashed iig

Tja


Verwijderd

Topicstarter
Op maandag 17 juni 2002 11:00 schreef MadEgg het volgende:
Waarom maakt iedereen scriptjes voor services die down gaan?
Een service hoort toch niet vanzelf down te gaan? Is het dan niet een beter idee om te zorgen dat ie wat stabieler wordt? En imho is Apache stabiel, hier nog nooit gecrashed iig
extra veiligheid is toch nooit weg?

  • pistole
  • Registratie: Juli 2000
  • Laatst online: 14-08 22:52

pistole

Frutter

wat voor distributie?

Ik frut, dus ik epibreer


Verwijderd

Op maandag 17 juni 2002 10:51 schreef aarninkron het volgende:
maar goed, hoe dit ik dit in cgi??

if (!/sbin/service httpd status == ""){
restart server;
}
Ik gok iets van:
code:
1
2
/sbin/service httpd status || \
  /sbin/service httpd restart

  • MadEgg
  • Registratie: Februari 2002
  • Laatst online: 00:42

MadEgg

Tux is lievvv

Op maandag 17 juni 2002 11:10 schreef aarninkron het volgende:

[..]

extra veiligheid is toch nooit weg?
Je kan ook te ver gaan he :) Van al die cronjobs gaat hij juist eerder crashen :p

Tja


Verwijderd

Je kunt gewoon met het commando 'apachectl start' je httpd laten starten als ie down is en als ie nog wel actief is geeft dit commando een melding dat 'httpd is already running' en doet verder niks.

  • sebas
  • Registratie: April 2000
  • Laatst online: 16-12-2025
In principe heb je twee mogelijke aanpakken:
1) je checkt of de httpd in je process table staat bijvoorbeeld met ps -ef|grep -c httpd
2) je maakt met bijvoorbeeld lynx -dump een dump van je homepage en checkt de inhoud ervan, als het de gewenste site is is alles ok met je apache ....

Everyone complains of his memory, no one of his judgement.


  • jep
  • Registratie: November 2000
  • Laatst online: 15-08 16:52

jep

Blaat, ik vond maar zo een scriptje.. misschien heb je er wat aan. Moetje elke minuut door crontab laten runnen.. als er iets down is start 'ie het en logged hij 't netjes.

Enzo.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#!/usr/bin/perl -w

# Deamon checker 1.0 

$httpd="yes";
$mail="yes";
$named="yes";
$xinetd="yes";
$sshd="yes";
$mysql='yes';

# Start a deamon when it's down..

$logfile="/var/log/deamoncheck.log";
chop($date=`date +"[%D]-[%k:%M]"`);

chop($sshdcount=`ps auxc | grep sshd | wc -l`);
chop($namedcount=`ps auxc | grep named | wc -l`);
chop($httpdcount=`ps auxc | grep httpd | wc -l`);
chop($xinetdcount=`ps auxc | grep xinetd | wc -l`);
chop($mailcount=`ps auxc | grep sendmail | wc -l`);
chop($mysqlcount=`ps auxc | grep mysqld | wc -l`);

if ($sshd eq "yes") {
if ($sshdcount=="0") {
system("sshd > /dev/null");
system ("echo \"$date I started ssh for you!\" >> $logfile"); }  }

if ($mysql eq "yes") {
if ($mysqlcount=="0") {
system("/usr/local/bin/safe_mysqld --user=mysql &");
system ("echo \"$date I started MySQLD for you!\" >> $logfile"); }  }

if ($httpd eq "yes") {
if ($httpdcount=="0") {
system("/usr/local/apache/bin/apachectl start > /dev/null");
system ("echo \"$date I started apache for you!\" >> $logfile"); }
 }

if ($named eq "yes") {
if ($namedcount=="0") {
system("/usr/local/sbin/named > /dev/null");
system ("echo \"$date I started named for you!\" >> $logfile"); }
 }

if ($mail eq "yes") {
if ($mailcount=="0") {
system("ps auxc | mail jep\@servicez.org");
system("/etc/init.d/sendmail start > /dev/null");
system ("echo \"$date I started sendmail for you!\" >> $logfile"); }
 }

if ($xinetd eq "yes") {
if ($xinetdcount=="0") {
system("/etc/init.d/xinetd start > /dev/null");
system ("echo \"$date I started xinetd for you!\" >> $logfile"); }
 }

# EOF

Wie weet vind je 't handig.

/edit: ookal stelt 't natuurlijk geen ruk voor :+
Pagina: 1