Buffalo Linkstation einschalten via WOL

Die Buffalo Linkstation Live CHL ist ein NAS für Privatanwender. Eines der besten Features ist, dass das NAS sich automatisch einschaltet, wenn sich ein PC im Netzwerk hochgefahren wird. Für Windows und Mac OS legt Buffalo eien entsprechende Software bei, unter Linux ist man auf sich selbst gestellt. Ohne Angst vor der Kommandozeile und etwas Vorwissen zur Paketinstallation ist jedoch schnell und unkompliziert eine Lösung in Form eine Bash-Skriptes geschaffen. Auf die distributionsspezifische Installation der benötigten Wake-On-LAN-Pakete wird nicht weiter eingegangen.

Anforderungen

  • PC mit Linux (hier Ubuntu 10.04, andere Linuxdevirate sollten aber ebenso problemlos funktionieren)
  • root-Rechte auf dem PC für die Anpassung und die Installation
  • Wake-On-LAN Softwarepaket ist installiert
  • Buffalo Linksstation (Netzwerkanschluss)

 

Inhaltsverzeichnis

1. WOL-Skript mit Mounting

1.1 Skript erstellen
1.2 Skript ausführbar machen

2. Share-Verzeichnis mounten

2.1 Erstellung einer Rechtedatei im Homeverzeichnis des Benutzers
2.2 Eintrag in die Datei /etc/fstab
2.3 Manuelles Einbinden als normaler Benutzer

3. Automatischer Start des Skriptes (via GNOME-Desktop)

 

 

1. WOL-Skript mit Mounting

 

1.1 Skript erstellen

Nachfolgendes Skript verschickt ständig Aufwachbefehle an das Buffalo Linkstation NAS via Netzwerk, benutzt wird dabei das Paket "WakeOnLan". Ausprobiert habe ich es unter Ubuntu 10.04, sollte jedoch mit anderen Deviraten ähnlich funktionieren. Ich bin übrigens nicht der orginäre Autor dieses Skripts, leider habe ich den Link auf das Origninal in einem Forum verloren. Ich habe lediglich einige unwesentliche Modifikationen vorgenommen.

 

Bash-Skript:

linkstation.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#!/bin/bash
HOST="10.0.0.xxx"
BASEDIR="/home/USERNAME/DIRECTORY"
MAC_ID="AA:BB:CC:DD:EE:FF"
if [ ! "$(ping -c1 ${HOST})" ]; then
DISPLAY=:0.0 zenity --error
--title="Die Buffalo Linkstation wurde nicht gefunden."
--text="Die IP-Adresse ${HOST} konnte nicht angepingt werden."
exit 1
fi
wakeonlan -i ${HOST} -p 9 ${MAC_ID}
sleep 120
mount //${HOST}/share  
 
# Endlosschleife für den dauer-Wake-On-Lan-Befehl
while
true do

wakeonlan -i ${HOST} -p 9 ${MAC_ID}
sleep 240
done

Folgende Inhalte sind auf die persönlichen Gegebenheiten anzupassen:

Zeile 2: Hier bitte die IP-Adresse der Buffalo Linkstation eintragen
Zeile 3: Das Heimatverzeichnis anpassen, DIRECTORY steht für ein anzulegendes Verzeichnis im Heimatpfad
Zeile 4: Die Variable MAC_ID muss die MAC-Adresse der Linkstation enthalten

[TOP]

 

1.2 Skript ausführbar machen

Alle angelegten Dateien sind für den Besitzer zwar les- und schreibbar unter Linux, aber nicht automatisch ausführbar. Wir müssen die Datei also erst ausführbar machen (755: für alle ausführbar, 744: nur für den Besitzer ausführbar).

> chmod 755 linkstation.sh

[TOP]

 

 

2. Share-Verzeichnis beim Systemstart mounten

 

2.1 Erstellung einer Rechtedatei im Homeverzeichnis des Benutzers

> nano /home/USER/.smbcredentials

username=TEST
password=TESTPW

Die Platzhalter "USER", "TEST" und "TESTPW" sind zu ersetzen.

Damit die Datei nur von dem entsprechenden Benutzer eingesehen werden kann, setzt man die Rechte dementsprechend:

> sudo chmod 600 ./smbcredentials

[TOP]

 

2.2 Eintrag in die Datei /etc/fstab

> sudo nano /etc/fstab

Tragen Sie die nachfolgende Zeile ohne Umbruch in die Datei ein:

//HOST/share /home/USERNAME/DIRECTORY cifs credentials=/home/USER/.smbcredentials,users,noauto,rw,_netdev,file_mode=0777,dir_mode=0777 0 0

Bitte die Platzhalter "HOST", "USERNAME", "DIRECTORY", "USER" und "PASSWORD" mit den gewünschten Werten ersetzen.

[TOP]

 

2.3 Manuelles Einbinden als normaler Benutzer

Normalerweise dürfen nur Admins die Befehle "mount" und "umount" benutzen. Damit unser Skript aber funktioniert, benötigt der Benutzer dieses Recht. Deshalb muß für die Dateien mount.cifs und umount.cifs das sog. SUID-Bit gesetzt ist. Wird das SUID-Bit, "Set User ID"-Bit, gesetzt, wird eine ausführbare Datei nicht mit der Berechtigung des Benutzers, sondern mit der Berechtigung des Eigentümers der Datei ausgeführt.

Mit folgenden Befehlen im Terminal wird die Erlaubnis zum Mounten für Benutzer gesetzt:

> sudo chmod +s /sbin/mount.cifs
> sudo chmod +s /sbin/umount.cifs

[TOP]

 

 

3. Automatischer Start des Skriptes (via GNOME-Desktop)

Unter der graphischen Benutzeroberfläche GNOME-Desktop ist es sehr einfach Autostart-Dateien zu erzeugen. Dazu klicken Sie in der Menüleiste den Punkt Einstellungen und wählen dann den Unterpunkt Startprogramme aus. Dort erzeugen Sie einen neuen Eintrag:

bash /home/USERNAME/PATH_TO_SKRIPT/linkstation.sh

Vergeben Sie noch eine aussagekräftige Beschreibung, damit Sie auch nach längerer Zeit noch den Sinn dieser Startdatei auf den ersten Blick erkennen können.

Das Ergebnis sollte wie folgt aussehen:

Ergebnis des Autostart-Eintrags beim GNOME-Desktop

[TOP]