• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

script "if ping -c4 192.168.x.x then exit0 - else mail

kaipw

Member
hallo leutz,

ich möchte über ein einfaches script erreichen, dass ich über einen ping befehl "prüfen" kann ob ein rechner in meinem netzwerk "on" ist und seine dienste verrichtet

und wenn das eben nicht der fall ist, das mir das script über meinen mailserver an meine web.de email adresse eine email schickt mit einer entsprechenden meldung!

----------------------------------------

wie im betreff schon angegeben, ist das mit der ping abfrage kein problem, nur wenn es an den mailversand geht, hängt mir das script in der Konsole und wartet auf eine -manuelle eingabe- für den betreff.

wie kann ich das verhindern?!

so funktionierts auf jedenfall nicht...

#! /bin/bash
#
if ping -c4 192.168.0.5
#
then exit0
#
else mail meine-email@web.de
#
server is down
#
fi

----------------------------------------
any ideas??
gruss kai
 
OP
kaipw

kaipw

Member
das ist mir auch klar, aber wie kann ich das in dem script verhindern ?! - und in dem script einen betreff sowie text angeben!?

grüsse
 
OP
kaipw

kaipw

Member
achso, ist mir neu das ich das nicht verhindern will *lol

egal, habs anschließend so probiert
---------------------------------------
.....
#
else mail meine-email@web.de
subject server ist down

fi
---------------------------------------

funzt aber auch nicht! hast du nicht grad per "zufall" die passende syntax zur hand?!

man mail verät mir auch nichts ...

gruss kai
 
OP
kaipw

kaipw

Member
geile antwort @oc2pus --> DANKE

--------------

pipes trennen befehle voneinander und führen diese nacheinander aus, das ist mir schon klar.

...aber das ganze per pipe zu machen, darauf wäre ich echt nicht gekommen, so wie es oc2pus vorgeschlagen hat...

gruss
 

TeXpert

Guru
kaipw schrieb:
geile antwort @oc2pus --> DANKE

--------------

pipes trennen befehle voneinander und führen diese nacheinander aus, das ist mir schon klar.

...aber das ganze per pipe zu machen, darauf wäre ich echt nicht gekommen, so wie es oc2pus vorgeschlagen hat...

gruss

nein, es ist keine Geile Antwort, denn Du hast den Sinn von Pipes nicht verstanden ;) sie trennen keine Befehle sondern verbinden Sie. Das Konzept nennt sich Pipes&Filter-Architektur gibts gute Literatur im Softwareengeneering-Bereich dazu...
 
OP
kaipw

kaipw

Member
man, man - das artet ja in einer erzieherischen maßnahme aus *lol

aber ich werd es mir zu gemüte führen und eure wort zu herzen nehmen!!

werd morgen mal meine antwort zur hausaufgabe pasten :)

gruss und danke
kai
 

regexer

Advanced Hacker
kaipw schrieb:
if ping -c4 192.168.0.5
Ich denke, dein Hauptproblem ist gelöst. Nur noch eine kleine Anmerkung: Ich wollte auch schon mal im Script eine Verbindung per ping testen und habe festgestellt, dass zwischen den verschiedenen SuSE-Versionen ein erheblicher Unterschied besteht. So wie du das geschrieben hast, würde dein Script auf einem SuSE 7 oder 8 endlos laufen, falls die IP nicht erreichbar ist. SuSE 9 kann ich nicht sagen.

Unter SuSE 8 muss man mit dem Parameter -w einen Timeout setzen.
Unter SuSE 7 gibt es diesen Parameter noch nicht. Da muss man sich behelfen mit: "timeout 5 -- ping -c 4"
 
Oben