PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Hilfe bzgl. Cronjob



Andy09
20.05.03, 17:12
Hi Leute,

für manche eine simple Sache, für mich ein Buch mit 7 Siegeln:
Ich habe im Rechenzentrum zwei Rechner zu stehen. 1. ist die Linux-Firewall, dahinter hängt ein Win2000 Server. Dieser hat scheinbar die angewohnheit zu merken wann ich nachts schlafen gehe und schaltet seine Internetdienste einfach kurzer hand ab. Danke - ist schon 2x in diesem Monat vorgekommen. Gemerkt hab ich das erst am nächsten Tag.

Jetzt hab ich folgende Idee. Per Cronjob soll alle 15 Minuten vom Linuxrechner aus versucht werden, irgendeine Seite auf dem Webserver aufzurufen. Kommt statt einer Seite plötzlich ein Fehler, z.B. 404, oder 500 etc. dann soll eine Mail abeschickt werden. Diese Mail landet bei einem bestimmten Anbieter welcher mich dann ein paar Sekunden anruft und per Computerstimmt die Mail vorliest, so kann ich dann schnell aus dem Bettchen hüpfen und den Server neustarten :D

Aber WIE kann ich das Bewerkstelligen?! Kann mir da bitte jemand den einen oder anderen Tipp geben wo ich wie was unter Linux einrichten muss das alle 15 Minuten ein Skript gestartet wird, und, wie muss dieses Skript in etwa aussehen?! Mit PHP wäre mir am liebsten, das bekomme ich HALBWEGS gebacken...

Links zu solchen Themen wäre natürlich für mich im moment auch Gold wert ;)

Danke im voraus
Andy

Berufspenner
20.05.03, 18:09
Jetzt hab ich folgende Idee. Per Cronjob soll alle 15 Minuten vom Linuxrechner aus versucht werden, irgendeine Seite auf dem Webserver aufzurufen. Kommt statt einer Seite plötzlich ein Fehler, z.B. 404, oder 500 etc. dann soll eine Mail abeschickt werden. Diese Mail landet bei einem bestimmten Anbieter welcher mich dann ein paar Sekunden anruft und per Computerstimmt die Mail vorliest, so kann ich dann schnell aus dem Bettchen hüpfen und den Server neustarten Das find ich schon recht pervers :ugly: Wieso tust du dir sowas an und nimmst nicht gleich einen Linuxserver? Dann weist du auch wieder was gesunder Schlaf ist :D

Cu
André

Windoofsklicker
20.05.03, 21:47
wieso lässt du die dienste auf dem w2k nicht automatisch neu starten?

arbeitsplatz, rechtsklick, verwalten, dienste und anwendungen, dienste, >dienst<, rechtsklick, eigenschaften, wiederherstellen,....

abgesehen davon wäre es doch besser der sache auf den grund zu gehen, warum der dienst absemmelt...

(bitte jetzt keine witzigen kommentare wie: ist halt microsoft.... )

Andy09
21.05.03, 00:25
@Andre
danke, genau das brauchte ich jetzt wohl :rolleyes: - Nein, die Sache sieht so aus, ich Programmiere sehr viel und sehr gerne, auf Win2k-Servern ist nun mal ASP die Skript-Sprache überhaupt, genauso wie bei Unix/Apache PHP. PHP bin ich aber noch eher der Anfänger, und alle Projekte jetzt umprogrammieren wäre der Wahnsinn, daher steige ich nach und nach bei PHP gerade ein aber die Hauptarbeiten mache ich eben (noch) auf ASP.

@Windoofsklicker
voll und ganz deiner Meinung, den Fehler mal auf die Spur kommen. Das Problem, mitlerweile bin ich mit meinem Latein am ende :mad: der Server spinnt derzeit sowieso gerne ein wenig rum, an manchen Tagen kann der echt froh sein das er im Rechenzentrum hockt und nicht direkt neben mir :ugly:

Aber das was ich da vorhabe, wäre auch ohne diese Macke eine interessante Sache, denn es können ja auch andere Sachen sein wo der Server plötzlich weg ist, sei es Betriebssystem, IIS, Netzwerkkabel oder -Karte etc. und egal, ich würde gerne meinen Linux-Rechner (ist derzeit "nur" für die Firewall zuständig) zusätzlich als Beobachter einsetzen, heißt, zickt einer der Kisten über ihm, ALARM rausgeben und zwar Pronto!!!

Nur wie?! Mir schwebt halt vor, per Cronjob irgendeine beliebige HTML Seite aufrufen, kommt die nicht, 2 Mails absenden, eine ist eine SMS (falls ich Unterwegs bin), eine ist an meinen Telefonanschluß zu Hause. Letzters ist schon fertig, nur wie mache ich einen Cronjob der genau das macht?!?!?!

HIIIIIIIIIIIILLLLLLLLLLLLLLLLLLLLLLLLLLLLLLFEEEEEE EEEEEEEEEEEEEEE :ugly:
Bitte Bitte Bitte Bitte Bitte Bitte Bitte Bitte Bitte Bitte Bitte Bitte Bitte Bitte Bitte!!!!!!!

Gruß
Andy

dauni
21.05.03, 10:52
Schau idch doch da mal um: http://linuxwiki.de/cron

Windoofsklicker
21.05.03, 10:54
also dass sollte alle deine probleme lösen => (screenshot unten)
ansonsten gibt es www.internetseer.com
die monitoren webseiten kostenlos und schicken dir alert emails.

netzmeister
21.05.03, 10:56
Hallo,

ich würde auch den Fehler suchen und finden.

Schaue Dir mal das hier an: http://www.ipsentry.com/
Ich check damit meine und die Kunden Server, bei Unregelmässigkeiten
erhalte ich oder der Kunde die Nachricht wo es klemmt. So etwas sollte es
eigentlich in jedem Rechenzentrum geben. Für Linux
gibt es z.B. Netsaint http://www.netsaint.org

Wir machen das für unsere Kunden, wenn Dein Rechenzentrum
das nicht macht, solltest Du Dir ein Anderes suchen :D


Viele Grüße

Eicke

sutterp
21.05.03, 13:09
Einen guten Tag and alle und gleich ein bisschen Kritik.

Ich gehe einig mit euch, dass es eine gute Idee wäre den Fehler zu suchen und zu finden. Aber Andy09 hat eine legitime Frage gestellt, die Ihr alle nicht beantwortet habt. Er kennt sich scheinbar mit Cronjobs und Skripts nicht so gut aus. Um seine Fragen beantwortet zu haben, hat er diese an dieses Forum gerichtet.

Meine persönliche und berufliche Ansicht ist, dass Linux eine grosse Zukunft haben kann, um diese Zukunft aber Wirklichkeit werden zu lassen, sollten wir in diesem Forum keine ausweichenden Antworten auf solche Fragen geben. Wir sollten uns bemühen gerade die Leute die den Schritt auf Linux gewagt haben nach möglichkeit zu unterstützten. Wir vergeben uns nichts wenn wir Fragen beantworten auf welche wir eine Antwort haben.

Genug geranzt.

Grüss Dich, Andy09

Cronjobs und bash skrips sind eine gute Kombination um automatisch regelmässig wiederkehrende Arbeiten unter Linux und Unix durchzuführen. Du bist da auf dem richtigen Weg.

Wie man das macht, hier ein kleines Skript:
------
#!/bin/bash
#
# Skript zum Testen ob eine bestimmte Webseite vorhanden und zugreifbar ist
# Sollte die Webseite fehlen, verschicken einer email.
#
Webseite="www.domain/webpage.html"
Resultat=$(wget --output-document=/dev/null $Webseite 2>&1 | grep -E "*ERROR*|*Host*")
if [ ! "$Resultat" == "" ]
then
echo "Die Webseite ist nicht abrufbar"
mail -s "Webseite nicht abrufbar" user@host.domain << EOF
Der Webserver hat den Geist aufgegeben
.
EOF
fi
-----

Auf der Zeile Webseite= trägst Du die Webseite die Du kontrollieren willst ein.

Die Zeile Resultat= macht das folgende:
Es benützt wget - das Du unter Umständen noch installieren musst - um die Webseite herunterzuladen. Als output für das Dokument soll das schwarze Loch /dev/null dienen (--output-document=/dev/null); 2>&1 heisst dass stdout und stderr zusammengefasst werden sollen; dieser output wird an grep, ein pattern matching Programm weitergeleitet, wo wir nach ERROR oder Host suchen. Dies weil entweder "17:41:04 ERROR 404: Not Found." oder sowas einen Fehler mit der Webseite selbst anzeigt, oder Host für "Resolving www.domain... failed: Host not found.". Wenn wir also etwas zurückbekommen, ist ein Fehler passiert. Wenn wir nichts zurückbekommen, war die Webseite ansprechbar.

Mit if then, prüfen wir ob wir einen leeren String zurückbekamen.

Die Zeile mail -s "Webseite nicht abrufbar" user@host.domain << EOF
sendet die email. unter Umständen kannst Du da noch ein -c ccuser@host.domain angeben falls die email an mehr als einen Benützer geschickt werden soll. das <<EOF bedeutet von nun an alles was folgt als Eingabe an mail zu betrachten, bis eine Zeile folgt auf der nur EOF am Anfang steht. Der Punkt vor der EOF Zeile ist wichtig, da damit die Eingabe an mail abgeschlossen wird.

Leg dieses Skript in irgendeiner Datei an. Jetzt musst Du noch mit chmod 770 Dateiname die Ausführungsberechtigung setzen.

Das ganze kannst Du jetzt mit ./Dateiname interaktiv austesten.

Um den Skript regelmässig auszuführen, kannst Du dies in einen Cronjob eingeben.
Log Dich dazu als root ein und mit crontab -e wird ein vi editor aufgerufen. Da gib eine Zeile ein die folgendermassen aussieht:
0,15,30,45 * * * * /Pfad/Dateiname
Dies bedeutet das alle 15 Minuten, zu jeder Stunde, an jedem Tag, an jedem Monat und an jedem Wochentag der angegebene Skript ausgeführt werden soll.

Wenn Dir ein graphisches Werkzeug lieber ist, kannst Du auch kcron benützen.

Ich hoffe dies macht in etwa was Du willst. Wenn Du Fragen hast, melde Dich.

Noch eine Bemerkung, wegen der Zeile echo "Die Webseite ist nicht abrufbar" wir cron jedesmal eine Email an root verschicken wenn die webseite nicht zugreifbar war. Cron schickt immer eine mail wenn ein output generiert wurde. Wenn Du dies nicht willst, nimm die Zeile weg.

Peter

Andy09
21.05.03, 15:25
@Peter
1000x Danke
für diese sehr sehr ausführliche Beschreibung inkl. Skript. Bin voll uns ganz durchgestiegen. Das eröffnet mir jetzt natürlich sehr viele Möglichkeiten.

Ich werde das nachher gleich mal Umsetzen, aber jetzt erstmal "Frühstücken", war eine lange "Nachtschicht" wiedermal...

@Windoofsklicker
Danke, die Idee ist natürlich auch nicht schlecht, habe es gleich mal eingestellt auf
1. Versuch = Dienst neu starten
2. Versuch = Dienst neu starten
3. Versuch = Computer neu starten
Denn der Dienst "hängt" offensichtlich einfach nur, also soll er erstmal versuchen den wieder zum starten zu bekommen... Ich glaube aber auch die Ursache heute Nacht gefunden zu haben...

@Netzmeister
Ich habe meine Server dort erst seit gut 1 1/2 Monaten, daher noch nie gefragt. Aber ich traue eigentlich mehr lieber meinen eigenen Sachen, ausserdem macht es doch tierisch mehr Spaß was selbst hinzubekommen, auch wenn mir Peter wahnsinnig viel geholfen hat, ich bin nicht dümmer geworden :D

Gruß
Andy

netzmeister
21.05.03, 15:32
Hallo Andy09,

mein Ansatz ist ein ganz Anderer. Du darfst das natürlich so machen,
wie Du möchtest. :D

Viele Grüße

Eicke

P.S. hast Du Dir die Links überhaupt angesehen? Wohl kaum, ...

Andy09
21.05.03, 16:20
@Eicke
doch, die hab ich mir angesehen, und dann kam genau das, was ich wiederum nicht haben wollte also nicht falsch verstehen ;) denn ich hab ja noch einige andere Sachen vor als "nur" das einfache prüfen, sachen, die kein Server/Rechner von ausserhalb aufrufen kann...

Gruß
Andy

Andy09
21.05.03, 16:44
@Peter
also ich hab alles mal 1:1 rüberkopiert auf den Server, die Rechte auf 770 gesetzt und kontrolliert ob /bin/bash auch wirklich vorhanden ist. Dennoch erhalte ich jedesmal die Meldung:
bash: ./test_server: bad interpreter: Datei oder Verzeichnis nicht gefunden

also /bin/bash ist korrekt
wget ist installiert gewesen
mail ist auch okay
und grep ist ebenfalls da...

komisch, trotzdem diese Meldung bad interpreter

Hab auch die anderen Skripte so verglichen die auf dem Rechner sind, die machen auch nichts anderes, ist da vielleicht irgendwas was ich übersehen haben könnte?!?!

Gruß
Andy

Berufspenner
21.05.03, 16:53
Hi@all

@Andy09
Es gibt für den Apachen ein Modul, mit dem du den Apachen ASP fehig machen kannst. Kannst es damit ja mal ausprobieren; wenn du willst.

Cu
André

Andy09
21.05.03, 17:04
So, jetzt reichts mir aber :mad: jetzt spring ich in mein Auto und kauf mir 1-2 Bücher zum Thema Linux, Bash, Skripte etc. Jetzt hat es mich einfach gepackt :D und irgendwie nervig wenn man nur diese Standard-Bücher von Linux hat, da kann man ja nun wirklich nichts lernen ausser, wie man es installiert :rolleyes:

Gruß
Andy

Andy09
21.05.03, 17:05
Original geschrieben von Berufspenner
Hi@all

@Andy09
Es gibt für den Apachen ein Modul, mit dem du den Apachen ASP fehig machen kannst. Kannst es damit ja mal ausprobieren; wenn du willst.

Cu
André
Davon hab ich auch schon gehört, dass Problem ist im moment, dass ich mehrere Komponente für ASP am laufen habe, welche unter Linux wiederum nicht gehen würde. Ansehen werde ich mir das Modul dennoch mal, mal sehen bis wie weit man damit gehen kann...

Gruß
Andy

Berufspenner
21.05.03, 17:06
Original geschrieben von Andy09
So, jetzt reichts mir aber :mad: jetzt spring ich in mein Auto und kauf mir 1-2 Bücher zum Thema Linux, Bash, Skripte etc. Jetzt hat es mich einfach gepackt :D und irgendwie nervig wenn man nur diese Standard-Bücher von Linux hat, da kann man ja nun wirklich nichts lernen ausser, wie man es installiert :rolleyes:

Gruß
Andy Vieleicht sind hier ja ein paar für dich interessante Bücher bei: http://www.linuxforen.de/forums/showthread.php?s=&threadid=37127

Cu
André

Windoofsklicker
21.05.03, 17:29
@andy

tausch mal #!/bin/bash gegen #!/bin/sh

@sutterp

natürlich sollte man immer direkt auf fragen antworten. wenn es jedoch einfachere lösungen gibt, sehe ich keinen grund, warum man nicht darauf hinweisen sollte!

Andy09
21.05.03, 19:48
Hi Leute,

so, bin wieder zurück :D
Das mit der Buchempfehlung hätte ich mal vorher sehen sollen, naja, ich hab mich erstmal für diese entschieden:
- Das Firewall Buch von Wolfgang Barth (SuSE PRESS)
- Das LAMP Buch von Heiko Goller (SuSE PRESS)
- Linux - Installation, Konfiguration, Anwendung von Michael Kofler (Addison-Wesley)
Das dürfte für mich um den einen oder anderen roten Faden zu finden erstmal reichen ;)

Zurück zum Thema, also die Meldung mit dem interpreter ist jetzt weg, komisch, hab eigentlich nichts derart verändert. Jetzt bekomme ich aber ständig die Meldung

./test_server2: line 10: syntax error near unexpected token 'fi'
./test_server2: line 10: 'fi'

Laut dem Buch hier aber, ist syntax-technisch alles okay, dann dachte ich, okay, bauen wir noch else ein, wenn also alles okay ist dann wird

echo "Webseiten sind erreichbar"
ausgegeben. Aber Pustekuchen, er meckerte dann else an.

Das nächste was ich nicht verstehe, wenn ich alles rausnehme, nur die if...then in einer Zeile belasse mit einem einfachen echo hinter dem then, dann meckert er den Ende der Datei an (EOF).

Sorry, eigentlich dachte ich, ich bin halbwegs Grundwissen mit, aber error wegen End Of File?! if....then ist okay, aber
if ....; then
...
else
...
fi
ist nicht okay?!

Kann mir das bitte mal einer erkären?! In den Büchern steht auch nichts anderes (behaupte ich jetzt mal auf den ersten Blick)

Gruß
Andy