ubuntuusers.de

VPN Überwachungsscript für IPSEC mit WGET

Status: Ungelöst | Ubuntu-Version: Server 14.04 (Trusty Tahr)
Antworten |

Lord

Anmeldungsdatum:
22. Januar 2007

Beiträge: 13

Hallo Leute,

ich möchte gerne auf einen unserer Server wo IPSEC drauf läuft diese Verbindung in Intervallen prüfen lassen.

Das ganze würde ich gerne per Bash Script realisieren, Problem hierbei ist das ich die Gegenseite nicht Pingen kann sondern nur ein wget auf die IP xxx.xxx.xxx.xxx machen kann um die Verbindung zu prüfen.

Ich bräuchte also ein kleines Script was die Verbindung per wget prüft sagen wir alle 5 Minuten und falls diese nicht mehr geht einfach ein IPSEC restart macht. Dazu muss ich sagen, dass ich weder ein Linux Crack bin noch mich groß auf Scripting verstehe, ich hoffe daher hier hat wer Lust mir zu helfen?

rklm Team-Icon

Projektleitung

Anmeldungsdatum:
16. Oktober 2011

Beiträge: 13219

Ich würde eher curl für so etwas nehmen - dann musst Du nicht immer die Dateien wegräumen. Außerdem würde ich das Skript dann per cron aufrufen. Dann wird das Skript ziemlich einfach:

1
curl -s 'http://was/auch/immer' >/dev/null || ipsec restart

Das packst Du in eine Datei z.B. in /root, machst sie ausführbar (z.B. chmod -c a+x /root/ip-sec-script) und trägst das dann in der Crontab ein (siehe Cron).

Lord

(Themenstarter)

Anmeldungsdatum:
22. Januar 2007

Beiträge: 13

Vielen Dank, hab mir inzwischen was gebaut was auch funktioniert:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16


#!/bin/bash

wget -q 127.0.0.1 >/dev/null

if [ $? -ne 0 ]
then
  echo "Connection Down Restarting" >&2

  service ipsec restart
  exit
else
	echo "Connection OK"
	exit
fi

rklm Team-Icon

Projektleitung

Anmeldungsdatum:
16. Oktober 2011

Beiträge: 13219

Lord schrieb:

Vielen Dank, hab mir inzwischen was gebaut was auch funktioniert:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16


#!/bin/bash

wget -q 127.0.0.1 >/dev/null

if [ $? -ne 0 ]
then
  echo "Connection Down Restarting" >&2

  service ipsec restart
  exit
else
	echo "Connection OK"
	exit
fi

Die exit ist völlig überflüssig. Der komplette else-Zweig ist m.E. überflüssig, weil man nicht ständig Ausgaben produzieren will, wenn alles OK ist. Der wget schreibt immer noch eine Datei, die Option "-q" verhindert nur Statusmeldungen. Nimm lieber curl oder nutze wenigstens "-O /dev/null".

Der Check von $? ist auch überflüssig: da kannst Du gleich die wget-Kommandozeile nutzen.

1
2
3
if ! wget ...; then
...
fi

Lord

(Themenstarter)

Anmeldungsdatum:
22. Januar 2007

Beiträge: 13

Hi,

danke für die Infos.

Hab das mal mit Curl probiert das ging aber nicht, wenn ich das direkt so Eingebe: curl -s 'http://was/auch/immer' >/dev/null || ipsec restart

Sagt er das er mit "ipsec restart" nichts anfangen kann und "ipsec --help" aufrufen soll. Ich nutze allerdings einen Aktuellen Debian Server, ich weiß nicht ob es hier anders ist. Dort startet man ja so "service ipsec start/stop/restart" allerdings wenn ich service ipsec restart an den Curl Befehl hänge, kommt auch wieder das Problem.

rklm Team-Icon

Projektleitung

Anmeldungsdatum:
16. Oktober 2011

Beiträge: 13219

Lord schrieb:

Hab das mal mit Curl probiert das ging aber nicht, wenn ich das direkt so Eingebe: curl -s 'http://was/auch/immer' >/dev/null || ipsec restart

Sagt er das er mit "ipsec restart" nichts anfangen kann und "ipsec --help" aufrufen soll.

Das liegt nicht an curl. Ich wusste von Deinem Ausgangsposting nicht, welchen Befehl Du ausführen musst für den Restart von IPSec. Mitdenken ist nicht verboten. ☺

Ich nutze allerdings einen Aktuellen Debian Server, ich weiß nicht ob es hier anders ist. Dort startet man ja so "service ipsec start/stop/restart" allerdings wenn ich service ipsec restart an den Curl Befehl hänge, kommt auch wieder das Problem.

Das kann ich mir nicht vorstellen. Kannst Du mal die Konsolenausgabe und das genaue Skript posten, das Du ausgeführt hast?

Antworten |