Bash Script zum automatischen runterfahren eines Rechners

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • Bash Script zum automatischen runterfahren eines Rechners

      Ich hab hier mal schnell nen bash script zusammen geschusstert, das IPs prüft ob diese erreichbar sind. Sollte keine der angegeben IPs erreichbar sein, so wird der Rechner der dieses Script ausführt runtergefahren. Das ganze hab ich gemacht, damit mein homeserver sobald kein Rechner mehr online ist heruntergefahren wird.
      Um das zu realisieren muss natürlich ein cron job eingerichtet werden.
      Der Code sollte selbst erklärend sein und funktioniert theoretisch in jeder bash shell. Getestet wurde es mit debian 7.0 (testing)

      Quellcode

      1. #! /bin/bash
      2. # Script zum pren ob ein Host online oder offline ist, wenn alle offline sind server aus
      3. COUNTER="0"
      4. NULL="0"
      5. IP="192.168.1.30 192.168.1.31 192.168.1.32 192.168.1.33 "
      6. for IP in $IP;
      7. do
      8. if ping -c 3 $IP >> /dev/null; then
      9. HOST=$(host $IP | cut -d ' ' -f 5- | cut -d '.' -f -1)
      10. date >> offline.txt
      11. echo -e $IP "/" $HOST "ist \033[42m online \033[0m" >> offline.txt
      12. COUNTER=`expr $COUNTER + 1`
      13. else
      14. date >> offline.txt
      15. echo -e $IP "/" $HOST "ist \033[41m offline \033[0m" >> offline.txt
      16. fi;
      17. done;
      18. if let "$COUNTER == $NULL" ; then
      19. /sbin/halt
      20. echo "halt" >> offline.txt
      21. else
      22. echo "Es war noch mindestens 1 host online!" >> offline.txt
      23. fi;
      Alles anzeigen


      Das Script geht davon aus das ihr lokal einen DNS Server betreibt, sollte das nicht so sein, ist die Script ausgabe ein wenig "hässlich", da kein dns name sondern iwas anderes da steht. Zudem funktioniert dieses Script nur mit einer Korn oder Bash Shell, da let nur in diesen beiden Shells verfügbar ist.

      MfG mE
    • Werbung zur Unterstützung des Forums ( Bitte AddBlocker deaktivieren )