Samstag, 16. August 2014

AutoShutdown

20140816 Memo an mich
AutoShutdown:

Damit meine NAS nicht ständig läuft habe ich mir aus verschiedenen Anleitungen selber was gebastelt

#!/bin/bash

# Dieses Skript überprüft ob über Samba oder SSH auf den Rechner zugegriffen wird
# Ist dies nicht der Fall, wird der Rechner in den Suspend geschickt. Dazu muss root
# in seine CronTab (crontab -e) folgende Zeile einfügen
# */15    *        *       *       *    /root/AutoShutdown.sh
# Alle 15 Minuten wird dieses Skript ausgeführt


SAMBANETWORK="192.168.2"
NETWORKPORTS="22 4440"

#Schreibt alles ins syslog
logit()
{
        logger -p local0.notice -s -- AutoShutdown: $*
}

#ist ein Port verbunden zb Samba oder SSH
IsPortInUse()
{
        for i in $*; do
                LANG=C netstat -an | grep -q "${myIp}:${i}.*ESTABLISHED$"
                Err=${?}
                if [ ${Err} -eq 0 ] ; then
                  logit "Port ${i} is still in use, auto shutdown terminated"
                  return 1
                fi
        done

        return 0
}

isBusy()
{
        # Samba
        if [ "x$SAMBANETWORK" != "x" ]; then
                if [ `/usr/bin/smbstatus -b | grep $SAMBANETWORK | wc -l ` != "0" ]; then
                    logit samba connected, auto shutdown terminated
                    return 1
                fi
        fi

        # check network-ports
        if [ "x${NETWORKPORTS}" != "x" ]; then
                myIp=$(LANG=C /sbin/ifconfig | sed -n "/inet addr/ { s|^[a-z ]*:\([0-9\.]*\).*$|\1|p }" | head -n 1)
                IsPortInUse ${NETWORKPORTS}
                if [ "$?" == "1" ]; then
                        return 1
                fi
        fi
}

isBusy
if [ "$?" == "0" ]; then
        /usr/sbin/pm-suspend
fi




Quellen:
http://wiki.ubuntuusers.de/Skripte/Auto_OFF

NAS:
ITX Board mit Intel Atom 330 Dualcore 1,6 gh
4 TB Festplatte
Debian Wheezy
Samba, MySql und noch paar andere Sachen

Keine Kommentare:

Kommentar veröffentlichen