Powered by Invision Power Board Schnäppchenticker


  
 
Reply to this topicStart new topicStart Poll

> Mal wieder Hilfe bei Script
zwick der agent
Geschrieben am: Montag, 11.Februar 2013, 22:18 Uhr
Quote Post


Professional
****

Gruppe: G2V3+User
Beiträge: 348
Mitgliedsnummer.: 12530
Mitglied seit: 2010-02-12



Hallo Leute,

bräuchte mal wieder Hilfe bei einem Script. Und zwar möchte ich das mein NAS bei nicht Aktivität der VDR's sich ausschaltet. Ich habe das hier im Intenet gefunden:

CODE
#!/bin/bash


URL1="192.168.178.50"
URL2="192.168.178.60"
URL3="192.168.178.70"
URL4="192.168.178.80"


_exit () {
case $1 in
1) echo "Kein Shutdown - Mindestens einer der VDRs ist eingeschaltet";;
2) echo "Kein VDR online - Shutdown in 60 Sekunden"; shutdown -p +1;;
esac
exit $1;
}

# VDRs  checken
if [ `ping -c 3 -i 1 $URL1 | grep -wc 100.0%` -eq 0 ]; then _exit 1; fi
if [ `ping -c 3 -i 1 $URL2 | grep -wc 100.0%` -eq 0 ]; then _exit 1; fi
if [ `ping -c 3 -i 1 $URL3 | grep -wc 100.0%` -eq 0 ]; then _exit 1; fi
if [ `ping -c 3 -i 1 $URL4 | grep -wc 100.0%` -eq 0 ]; then _exit 1; fi

# Wenn kein VDR an ist 3 min warten falls gerade einer neu startet
echo "Kein VDR online - Warte 180 Sekunden"
sleep 180

# VDRs nochmals checken
if [ `ping -c 3 -i 1 $URL1 | grep -wc 100.0%` -eq 0 ]; then _exit 1; fi
if [ `ping -c 3 -i 1 $URL2 | grep -wc 100.0%` -eq 0 ]; then _exit 1; fi
if [ `ping -c 3 -i 1 $URL3 | grep -wc 100.0%` -eq 0 ]; then _exit 1; fi
if [ `ping -c 3 -i 1 $URL4 | grep -wc 100.0%` -eq 0 ]; then _exit 1; fi


# Falls keiner der VDRs online war herunterfahren
_exit 2


Wie bekomme ich das hier in eine WHILE-Schleife, mit Delay und Retry? Kann mir jemand helfen?

Grüße

Email Poster
Top
HelAu
Geschrieben am: Dienstag, 12.Februar 2013, 09:38 Uhr
Quote Post


Scheffe
****

Gruppe: Admin
Beiträge: 10303
Mitgliedsnummer.: 2
Mitglied seit: 2003-04-25



Du koenntest einen anderen Ansatz waehlen und dann runterfahren wenn keine offenen Verbindungen da sind:
CODE
DELAY=100
while [ $(netstat -t |grep "^tcp"|grep -v "localhost:"|wc -l) -gt 0 ]; do
  sleep $DELAY
done
echo "No active connection - shutting down"
shutdown -h now
Email PosterUsers WebsiteICQAOLYahoo
Top
zwick der agent
Geschrieben am: Dienstag, 12.Februar 2013, 17:33 Uhr
Quote Post


Professional
****

Gruppe: G2V3+User
Beiträge: 348
Mitgliedsnummer.: 12530
Mitglied seit: 2010-02-12



Danke Helau, aber die NFS Verbindungen werden leider nicht korrekt ermittelt. Auch wenn der NFS-Client nicht mehr da ist, wird eine Verbindung angezeigt, aus diesem Grund würde ich gerne lieber pingen.

Grüße

Email Poster
Top
linuxdxs
Geschrieben am: Mittwoch, 13.Februar 2013, 08:11 Uhr
Quote Post


Professional
****

Gruppe: G2V3+User
Beiträge: 236
Mitgliedsnummer.: 11698
Mitglied seit: 2009-11-03



Warum machst Du es nicht mit einen Cron-Job?
Email Poster
Top
HelAu
Geschrieben am: Mittwoch, 13.Februar 2013, 08:31 Uhr
Quote Post


Scheffe
****

Gruppe: Admin
Beiträge: 10303
Mitgliedsnummer.: 2
Mitglied seit: 2003-04-25



CODE
#!/bin/bash
CLIENTS="192.168.178.50 192.168.178.60 192.168.178.70 192.168.178.80"

FOUND=1
# VDRs  checken
while [ "$FOUND" = "1" ]; do
  FOUND=0
  for i in $CLIENTS; do
     ping -c 3 -i 1 $i
     [ "$?" == "0" ] && FOUND=1
  done
  sleep 60
done
echo "Kein VDR online - Shutting down"
shutdown -h
Email PosterUsers WebsiteICQAOLYahoo
Top
zwick der agent
Geschrieben am: Mittwoch, 13.Februar 2013, 17:28 Uhr
Quote Post


Professional
****

Gruppe: G2V3+User
Beiträge: 348
Mitgliedsnummer.: 12530
Mitglied seit: 2010-02-12



Danke Helau, das werde ich mal so probieren ;)

Grüße

Email Poster
Top
Thema wird von 1 Benutzer(n) gelesen (1 Gäste und 0 Anonyme Benutzer)
0 Mitglieder:

Topic Options Reply to this topicStart new topicStart Poll