Festplatte automatisch in Standby fahren

Da wohl nahezu alle mit Raspberrys verwendeten Festplatten per USB verbunden werden, benutzt man am besten das Programm sdparm. Man installiert es durch

apt-get install sdparm

Da sdparm leider nicht als Daemon läuft, müssen wir uns wieder selbst ein Skript zusammenbasteln und dieses mit Cron in regelmäßigen Abständen ausführen. Das unten stehende hat sich bei mir bewährt und überprüft, ob innerhalb von 10 Sekunden Zugriffe auf die Festplatte verzeichnet werden. Ist dies nicht der Fall, wird diese in den Standby gefahren. Hochfahren muss man die Festplatte übrigens nicht manuell, das passiert bei Zugriff automatisch.

#!/bin/bash
DISKNAME="sda"
let a=0
for i in `seq 0 100`
do
let a=`cat /proc/diskstats | grep $DISKNAME | mawk '{ print $(NF-2) }'`+a
sleep 0.1s
done
if [ $a == 0 ]
then
sdparm -C stop /dev/$DISKNAME
fi
exit 0

Wir benutzen cron, um das Skript immer nach einem festgelegten Zeitintervall auszuführen. Dafür fügen wir an /etc/crontab an:

*/30 * * * * root bash /scripts/hdd_ausschalten.sh

Dadurch wird das Skript alle 30 Minuten ausgeführt, was man natürlich nach eigenem Ermessen anpassen kann. Dabei ist aber zu beachten, dass die Zeit nicht zu kurz gewählt wird, da jedes Anhalten und Anfahren die Lebenszeit der Festplatte reduziert.

Dynamisches DNS

Um jederzeit, auch außerhalb des heimischen Netzwerks auf sein Gerät zugreifen zu können, benötigt man einen DynDNS-Dienst, der Anfragen an eine feste URL (z.b. max.dyns.cx) an die ständig wechselnde dynamische IP, die ihr von eurem Provider zugewiesen bekommt, weiterleitet. Ich kann an dieser Stelle den Dienst dyns.cx empfehlen, bei dem man ein großes Funktionspaket für eine einmalige Zahlung von 5€ (4. Januar 2014) bekommt.

Man benötigt weiterhin eine Software, die sich ab und zu beim zentralen Server meldet und die entsprechende IP dort abliefert. Ich benutze dazu das Programm ez-ipupdate. Hat man seinen Server, wie es wohl bei den meisten Leuten der Fall ist, hinter einem Router laufen, so benötigt man zusätzlich dnsutils.

Copy-Paste-Vorlage für benötigte Software:

apt-get install ez-ipupdate dnsutils

ez-ipupdate allein bringt uns allerdings hinter einem Router herzlich wenig, sodass wir uns hier eine Lösung zusammenbasteln müssen, die zuerst die externe IP ermittelt und mittels ez-ipupdate an den Server unseres DynDNS-Anbieters weiterreicht. Dazu müssen wir zunächst den zugehörigen Hintergrundprozess („Daemon“) stoppen und dauerhaft deaktivieren:

service ez-ipupdate stop;
rm /etc/init.d/ez-ipupdate

Jetzt brauchen wir ein Skript, dass sich mittels dig aus dem installierten Paket dns-utils die externe IP besorgt und mittels ez-ipupdate an den DynDNS-Server schickt. Weiter unten findet sich eine Copy&Paste fähige Vorlage, die ihr nur um eure Daten ergänzen und abspeichern müsst (z.B. unter /scripts/ip_updaten.sh).

#!/bin/bash
#/scripts/ip_updaten.sh
WANIP=`dig +short myip.opendns.com @resolver1.opendns.com`
ez-ipupdate -a $WANIP -S [Dienst] -h [Hostname] -u Login:Passwort
exit 0

Das war’s eigentlich schon fast. Jetzt müssen wir das Skript nur per cron alle paar Minuten ausführen. Dazu kopiert ihr Folgendes and das Ende der Datei /etc/crontab

*/2 * * * * root /pfad/zum/skript

Heimserver auf dem Raspberry Pi

Viele haben sich im vergangenen Jahr einen Raspberry Pi zugelegt, eine Weile daran herumgespielt, und das Gerät schließlich in die Gerümpelecke verbannt. Sie wissen schon – gleich neben dem Fondue-Set und dem Sushi-Rollen-Roller.

Seien wir ehrlich: der Raspberry Pi ist jetzt nicht das Übergerät. Für den Einsatz als Desktop-Rechner eignet er sich mangels Leistung nicht. Das Gleiche trifft für den Einsatz als Mediacenter zu, das ist jedenfalls meine Meinung.

Was qualifiziert den Pi also für einen Platz außerhalb der Rumpelkammer?

Diese Frage stellte ich mir Anfang des Jahres 2014. Nach einiger Überlegung beschloss ich, dass der Kleine sein Dasein von nun an als File-, Web- und Kalenderserver zu fristen hatte. Schließlich bezieht der Pi nur ~5 W an elektrischer Leistung, da kann man es sich schon leisten, ihn rund um die Uhr laufen zu lassen.

Beim Einrichten des Servers habe ich erstaunlich viel über Linux und diverse Serversoftware gelernt. Diese frisch gewonnen Erkenntnisse möchte ich in der neuen Kategorie Raspberry Pi Server teilen, in der Hoffnung dass dem leidgeplagten Hobby-Admin so einige Stunden Tüftelei und Frustration erspart bleiben mögen.

Eine Einschränkung jedoch vorweg: dass der Pi ein echtes Sparbrötchen ist, was den Energiebedarf angeht, kommt nicht von ungefähr. Er ist und ein bleibt in puncto Rechenleistung ein besserer Taschenrechner. Dadurch fallen aufwändigere Serveranwendungen von vornherein unter den Tisch.

Ich werde weiterhin davon ausgehen, dass ganz grundlegendes Wissen über Linux vorhanden ist und dass bereits ein Raspbian Betriebssystem (am besten in der abgespeckten Variante ohne Desktop) installiert wurde. Anleitungen, wie das zu bewerkstelligen ist, finden sich zuhauf auf der Suchmaschine des Vertrauens.