Diese Website existiert nur weil wir Werbung mit AdSense ausliefern.
Bitte den AdBlocker daher auf dieser Website ausschalten! Danke.

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

Alles rund um die verschiedenen Konsolen und shells sowie die Programmierung unter Linux

Moderator: Moderatoren

Antworten
Benutzeravatar
kaipw
Member
Member
Beiträge: 105
Registriert: 6. Sep 2004, 17:26
Wohnort: münchen

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

Beitrag von kaipw »

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
Benutzeravatar
TeXpert
Guru
Guru
Beiträge: 2166
Registriert: 17. Jan 2005, 11:22

Beitrag von TeXpert »

mail erwartet die Eingabe des Textes über stdin.

Code: Alles auswählen

# to resolve all your problems, try this:
HOWTO='pack c5,41*2,sqrt 7056,unpack(c,H)-2,oct 115' && perl -le "print $HOWTO"
Ich beantworte keine Supportfragen per PM!
Benutzeravatar
kaipw
Member
Member
Beiträge: 105
Registriert: 6. Sep 2004, 17:26
Wohnort: münchen

Beitrag von kaipw »

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
Benutzeravatar
TeXpert
Guru
Guru
Beiträge: 2166
Registriert: 17. Jan 2005, 11:22

Beitrag von TeXpert »

kaipw hat geschrieben:das ist mir auch klar, aber wie kann ich das in dem script verhindern ?!
das willst Du nicht verhindern
- und in dem script einen betreff
man mail
sowie text angeben!?

grüsse
über stdin wie bei allen anderen Pipe&Filter-Tools auch....

Code: Alles auswählen

# to resolve all your problems, try this:
HOWTO='pack c5,41*2,sqrt 7056,unpack(c,H)-2,oct 115' && perl -le "print $HOWTO"
Ich beantworte keine Supportfragen per PM!
Benutzeravatar
kaipw
Member
Member
Beiträge: 105
Registriert: 6. Sep 2004, 17:26
Wohnort: münchen

Beitrag von kaipw »

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
Benutzeravatar
oc2pus
Ultimate Guru
Ultimate Guru
Beiträge: 6506
Registriert: 21. Jun 2004, 13:01

Beitrag von oc2pus »

Code: Alles auswählen

echo "text text text " |  mail -s subject ich@zuhause.nil
tell people what you want to do, and they'll probably help you to do it.
PackMan
LinWiki : Das Wiki für Linux User
Benutzeravatar
TeXpert
Guru
Guru
Beiträge: 2166
Registriert: 17. Jan 2005, 11:22

Beitrag von TeXpert »

kaipw hat geschrieben:man mail verät mir auch nichts ...
glaub ich nicht. da steht genau drin, wie man den Betreff setzt.

jetzt zum Body, hast Du schon mit Pipes gearbeitet? was machen die? hä? denk nach.

Code: Alles auswählen

# to resolve all your problems, try this:
HOWTO='pack c5,41*2,sqrt 7056,unpack(c,H)-2,oct 115' && perl -le "print $HOWTO"
Ich beantworte keine Supportfragen per PM!
Benutzeravatar
TeXpert
Guru
Guru
Beiträge: 2166
Registriert: 17. Jan 2005, 11:22

Beitrag von TeXpert »

oc2pus hat geschrieben:

Code: Alles auswählen

echo "text text text " |  mail -s subject ich@zuhause.nil
Spielverderber...

wie soll man denn die Leute zum Denken bringen... (das Subject hätte er nun wirklich aus der manpage nehmen können....)

Code: Alles auswählen

# to resolve all your problems, try this:
HOWTO='pack c5,41*2,sqrt 7056,unpack(c,H)-2,oct 115' && perl -le "print $HOWTO"
Ich beantworte keine Supportfragen per PM!
Benutzeravatar
oc2pus
Ultimate Guru
Ultimate Guru
Beiträge: 6506
Registriert: 21. Jun 2004, 13:01

Beitrag von oc2pus »

ok, stimmt.

aber manche wollen einfach nicht lesen, und er hat so schön bitte gesagt ;)
tell people what you want to do, and they'll probably help you to do it.
PackMan
LinWiki : Das Wiki für Linux User
Benutzeravatar
kaipw
Member
Member
Beiträge: 105
Registriert: 6. Sep 2004, 17:26
Wohnort: münchen

Beitrag von kaipw »

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
Benutzeravatar
oc2pus
Ultimate Guru
Ultimate Guru
Beiträge: 6506
Registriert: 21. Jun 2004, 13:01

Beitrag von oc2pus »

kaipw hat geschrieben:geile antwort @oc2pus --> DANKE
als Hausaufgabe:
baue das mal so um, das der Text das aktuelle Datum enthält und den Rechnernamen welcher gepingt wird ...
tell people what you want to do, and they'll probably help you to do it.
PackMan
LinWiki : Das Wiki für Linux User
Benutzeravatar
TeXpert
Guru
Guru
Beiträge: 2166
Registriert: 17. Jan 2005, 11:22

Beitrag von TeXpert »

kaipw hat geschrieben: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...

Code: Alles auswählen

# to resolve all your problems, try this:
HOWTO='pack c5,41*2,sqrt 7056,unpack(c,H)-2,oct 115' && perl -le "print $HOWTO"
Ich beantworte keine Supportfragen per PM!
Benutzeravatar
kaipw
Member
Member
Beiträge: 105
Registriert: 6. Sep 2004, 17:26
Wohnort: münchen

Beitrag von kaipw »

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
Benutzeravatar
regexer
Advanced Hacker
Advanced Hacker
Beiträge: 1005
Registriert: 3. Dez 2004, 09:29
Wohnort: $_

Re: script "if ping -c4 192.168.x.x then exit0 - else m

Beitrag von regexer »

kaipw hat geschrieben: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"
Antworten