Bash Script

Du suchst ein Programm für einen bestimmten Zweck?
Antworten
cisco1812
Beiträge: 41
Registriert: 19.01.2012 08:02:23

Bash Script

Beitrag von cisco1812 » 02.10.2012 09:54:48

Hi,
ich suche folgendes Script.
Script soll ausführen dauerping auf 192.168.5.5 - sobald der ping 10x lost ist soll der server ifup eth0:1 ausführen und weiterhin pingen, sobald der server dann wieder pingbar ist soll ifdown eth0:1 ausgeführt werden.

Jemand ideen?

Benutzeravatar
r900
Beiträge: 1053
Registriert: 09.10.2011 20:06:11
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Stockholm

Re: Bash Script

Beitrag von r900 » 02.10.2012 12:21:29

Also du willst bei Verlust der Verbindung eth1 aktivieren und wenn dann die Verbindung wieder steht eth0 deaktivieren und vice versa?

Cae
Beiträge: 6349
Registriert: 17.07.2011 23:36:39
Wohnort: 2130706433

Re: Bash Script

Beitrag von Cae » 02.10.2012 13:06:46

Code: Alles auswählen

$ while ping -c 192.0.2.42 >/dev/null || dead=1; do if test $dead; then echo ifup; else echo ifdown; fi; dead=; sleep 1; done
Das sleep 1 ist dazu da, damit man die Schleife wieder unterbrechen kann (sonst bricht man immer den Ping ab, der sofort neu gestartet wird). Wenn das erstmal eingerichtet ist, braucht man kein sleep mehr (schadet aber auch nicht und beugt ungebremsten Endlosschleifen vor). Beachte, dass ifup/ifdown immer ausgeführt wird, selbst wenn sich nichts am Status ändert. Dazu bräuchte man ein kleines Bisschen Mehraufwand.

Gruß Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.

—Bruce Schneier

cisco1812
Beiträge: 41
Registriert: 19.01.2012 08:02:23

Re: Bash Script

Beitrag von cisco1812 » 02.10.2012 13:12:11

r900 hat geschrieben:Also du willst bei Verlust der Verbindung eth1 aktivieren und wenn dann die Verbindung wieder steht eth0 deaktivieren und vice versa?
Nein ich habe Zwei Server
Server 1: 192.168.5.5
Server 2: 192.168.5.6
Die Server haben die selben Daten (iSCSI) und der Server 1 ist der "Hauptserver" fällt dieser einmal aus soll Server 2 für Ihn einspringen sprich:
-> Server 2 Pingt die ganze Zeit 192.168.5.5 .. .. .. .. ..
-> Server 2 Sieht kein Ping mehr .. ..
-> Server 2 schaltet sein Interface an
-> Server 2 sieht den Server 1 wieder 192.168.5.5 pingbar
-> Server 2 schaltet sein interface wieder ab.

Cae
Beiträge: 6349
Registriert: 17.07.2011 23:36:39
Wohnort: 2130706433

Re: Bash Script

Beitrag von Cae » 02.10.2012 13:18:13

Also ist das eine Billiglösung für etwas Hochverfügbarkeit? Dann solltest du beachten, dass in dem Zeitfenster, wo beide Server (wieder) leben, in deinem Netzwerk furchtbares Chaos herrscht. U.u. schreibt ein Storage-Client seine Daten dann halb auf den Backup und halb auf den Master… wirklich unschön.

Gruß Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.

—Bruce Schneier

cisco1812
Beiträge: 41
Registriert: 19.01.2012 08:02:23

Re: Bash Script

Beitrag von cisco1812 » 02.10.2012 15:40:09

das ganze soll nur testweise sein damit ich überhaupt mal was in diese richtung anfange :)

Benutzeravatar
unitra
Beiträge: 646
Registriert: 15.06.2002 21:09:38
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: 127.128.129.130

Re: Bash Script

Beitrag von unitra » 09.10.2012 23:54:23

Ich verstehe nicht wo das Problem ist so ein Script zu schreiben, den Pseudocode hast du doch schon geliefert mit.
cisco1812 hat geschrieben: ...
-> Server 2 Pingt die ganze Zeit 192.168.5.5 .. .. .. .. ..
-> Server 2 Sieht kein Ping mehr .. ..
-> Server 2 schaltet sein Interface an
-> Server 2 sieht den Server 1 wieder 192.168.5.5 pingbar
-> Server 2 schaltet sein interface wieder ab.
Es gibt Protokolle die die ganze Arbeit übernehmen (Siehe z.B. VRRP), funktioniert im Prinzip fast genauso, nur ohne Interfaces abzuschalten.

Antworten