Archiv verlassen und diese Seite im Standarddesign anzeigen : webserver testen
Hallo,
Wie kann ich ein shellskript testen lassen, ob der webserver gestartet wurde?
Müsste ja irgendwie mit einem telnet oder so gehen oder?
Danke bis denne
DaemonB
bei meiner suse 7.3 ist ein script dabei das rcapache heißt. der Aufruf "rcapache status" gibt dann auskunft.
alternativ liefert "ps ax|grep httpd" die info...
dritte variante ist folgende:
in der httpd.cinf steht folgende zeile:
PidFile /var/run/httpd.pid
die angegebene Datei existiert nur wenn der server läuft
hm nein, wollte nich auf das startskript angewiesen sein. Wollte wirklich checken, ob das ding erreichbar ist.
Das skript sollte halt auch von extern laufen.
Danke schonmal
DaemonB
was heißt extern? eine telnet oder besser ssh-session, also remote ?
dann geht das auf jeden fall: ps ax|grep httpd
auch die überprüfung des pid-files geht.
Falls extern etwas anderes bedeutet mach mich schlau ;)
Wenn du allerdings meinst, daß du einfach die erreichbarkeit auf dem port 80 von außen testen willst, kannst du dazu entweder einen brower wie lynx auf der shell benutzen oder mit perl oä. versuchen eine tcp-socket-verbindung zu deinem webserver aufzubauen.
oh ich depp, mit lynx iss subba idee, macht ja das skript an sich auch, allerdings ist auf dem server kein lynx drauf, mal schauen wie ich das machen kann
du kannst auch mit telnet <hostname> 80 einen verbindungsversuch starten
blos wie kann ich das in mein skript implementieren, weil wenn ich telnet localhost 80 eingebe, dann dauert das ja ewig und ich bekomme keinen rückgabewert.... Wie kann man das verarbeiten???
Danke
DaemonB
ups, das mit dem script hatte ich übersehen. soll wahrscheinlich regelmäßig und automatisch laufen...
ich habe hier ein stück perl-script, mit dem ich mat etwas rumprobiert habe. vielleicht kannst du's ja einfach umbauen. ichdenke, daß du nur den connect testen brauchst:
#!/usr/bin/perl -w
use IO::Socket;
use constant TIMEOUT=> 5;
use constant MYPORT => 7123;
print odbsql("select * from sys_log where log_date>'26.06.2002 15:00'");
################################################## ##################################
sub odbsql {
my $sql=$_[0];
$sock=new IO::Socket::INET( PeerAddr => "nt_hp.lbl.de",
PeerPort => MYPORT,
Proto => 'tcp',
Timeout => TIMEOUT
) or die "kann Socket-Server nicht conecten: $@\n";
$sock->autoflush;
$send="#SSTART#"."server=ntlbl08;uid=sa;pwd=db;database=transfer";
print $sock $send;
$server=<$sock>;
$server=~ s/\s//g;
if ($server eq "#OK#") {
$send="#SSQL#".$sql;
print $sock $send;
$server=<$sock>;
$server=~ s/\s//g;
}
$send="#SRES#";
print $sock $send;
$server=<$sock>;
$server=~ s/\r\n//g;
$server=~s/\|\|/\n/g;
return $server;
$sock->close();
}
hm jaa , perl ist so eine sache :-)
naja, werde mal schauen ob ich das so mache,..... weil mein shellskript ist schon ewig lang....
jetzt zu perl naja,...
Danke aber
DaemonB
ich schau mal, ob ich's einkürzen kann ;)
edit: ich habs gekürzt:
#!/usr/bin/perl -w
use IO::Socket;
use constant TIMEOUT=> 5;
use constant MYPORT => 80;
$sock=new IO::Socket::INET( PeerAddr => "lx-ew.lbl.de",
PeerPort => MYPORT,
Proto => 'tcp',
Timeout => TIMEOUT
) or die "is tot\n";
$sock->close();
print "alles io\n";
Schreib den code in eine datei z.B. wtest.pl
Ändere den parameter PeerAddr
und dann rufst du das ding einfach auf: ./wtest.pl
ergebnis: "is tot" | "alles io"
und schon kannst du Perl und weißt ob der webserver läuft :D
Bei Nagios ist ein programm dabei, das den Check macht: check_http
Leider kann ich dir im Moment nicht das binary schicken, da ich es hier nur als Linux/Sparc binary habe.
gruss,
pitu
Powered by vBulletin® Version 4.2.5 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.