Samstag, 16. August 2014

Wake on Lan mit autofs

20140816 Memo an mich

Wie im letzten Post beschrieben schaltet sich meine NAS nach 15 Minuten Inaktivität in den Suspend. Der eleganteste Weg das NAS wieder aufzuwecken ist einfach auf den Netzwerkorder im Homeverzeichnis zu klicken. Dann soll die NAS wieder hochfahren und die Sambafreigabe kann eingebunden werden. Dazu braucht man autofs, wakeonlan und ein Verzeichnis in das auch User schreiben dürfen.

Verzeichnis erstellen
mkdir /media
chmod 777 /media

In /etc/auto.master
/media /etc/auto.share  --timeout=600 --ghost

timeout=600 bedeutet dass nach 600 sec (10 min) ohne zugriff das Verzeichnis ausgehängt wird.

/etc/auto.share
#!/bin/bash

SERVERIP="192.168.2.100"
SERVERMAC="00:00:00:00:00:00"

ping -c 1 -w 1 -q $SERVERIP > /dev/null
status=$?
logger "AUTOFS: Attempting to mount $1 filesystem from SERVERIP"
logger "AUTOFS: Result from ping - $status"
if [ $status -ne 0 ]
then
        logger "AUTOFS: Host is not up. Sending wake-on-lan"
        /usr/bin/wakeonlan $SERVERMAC
        logger "AUTOFS: Sleeping for 60 seconds to allow host to wake"
        sleep 60
fi

logger "AUTOFS: Re-pinging host"
ping -c 1 -w 1 -q $SERVERIP > /dev/null
status=$?
logger "AUTOFS: Result - $status"

if [ $status -eq 0 ]
then
        logger "AUTOFS: Mounting $1 filesystem"
        #echo out autofs settings. Mount $1 share. $1 is passed in by autofs
        /bin/echo -n "-fstype=cifs,rw,noperm,username=Mustermann,password=Geheim ://192.168.2.100/NAS"
        #/bin/echo -n "-fstype=smbfs,rw,username=user,password=password ://SERVERIP/$1"
else
logger "AUTOFS: Still no ping result from host"
fi

Dieses Skript muss ausführbar sein chmod 755 auto.share
Nun kann der Dienst auch schon neu gestartet werden
service autofs restart

Als User muss noch ein Link im Homeverzeichnis erstellt werden
ln -s /media/NAS NAS


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

Donnerstag, 3. Juli 2014

MusicMan shuffle

Vor einiger zeit hab ich mir den MusicMan für die Arbeit gekauft. Der Plan war dass er nebenbei ein bischen vor sich hindudelt. Das macht der auch ganz gut, nur leider spielt er die MP3s, die sich auf einen USB-Stick befinden, eines nach dem anderen. Also kein Shuffel. Abhilfe schaft das kleine Bash Skript

#! /bin/bash

i=0
while read line
do
        array[ $i ]="$line"
        (( i++ ))
done < <(ls *.mp3)

COUNTER=0
while [  $COUNTER -lt $i ]; do
        echo ${array[$COUNTER]}
        newFile=`tr -dc "[:alpha:]" < /dev/urandom | head -c 16`
        newFile=$newFile".mp3"
        mv "${array[$COUNTER]}"  "$newFile"
        let COUNTER=COUNTER+1
done


es werden alle Dateien mit der Endung ".mp3" in ein Array gespeichert. In einer Schleife werden sie mit einem zufälligem Namen (16 Zeichen) umbenannt.




Montag, 23. Juni 2014

20140623 Memo an mich

In /etc/gdm3/Init/Default
#Aus dem Skript homeOffice
#Zweiten Monitor am VGA aktivieren

xrandr --output LVDS1 --mode 1366x768
xrandr --output VGA1 --mode 1440x900
xrandr --output VGA1 --right-of LVDS1
xrandr --output VGA1 --primary

#
#Aus dem Skript wakeUpNas.sh
#NAS aufwecken

ping 192.168.2.100 -c1
if [ $? -ne 0 ]
 then
        wakeonlan 00:1c:c0:a8:f6:4e
fi