MountRemoteVDR

Aus VDR Wiki
(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
(/etc/fstab)
 
(41 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
 
==Beschreibung==
 
==Beschreibung==
Construction zone  - sorry. (werde den Text in den nächsten Stunden erweitern: 2010.04.06 18:18)
 
  
Diese Skripte ermöglichen das Starten eines weiteren VDR per WOL. Danach wird das Aufnahmeverzeichnis im lokalen Verzeichnis eingehängt.
+
Diese Skripte ermöglichen das Starten eines weiteren VDR per WOL (Wake On Lan). Danach wird das entfernte Aufnahmeverzeichnis automatisch im lokalen Aufnahmeverzeichnis  eingehängt.
  
==Orte==
+
Die Bedienung erfolgt über neue Befehle im VDR-Menu.
#/etc/fstab
+
#/etc/.sambacredentials
+
  
 
==Lokale Konfigurationen==
 
==Lokale Konfigurationen==
  
===/etc/fstab===
+
===Voraussetzungen===
Zum Einhängen (mount) der Samba Freigabe des entfernten VDR (vdr2) brauchen wir einen Eintrag in die fstab des lokalen VDR.
+
Diese Beschreibung ist für Debian (Lenny) und Ubuntu (Intrepid, Karmic).
Damit wir nicht versehentlich die Filme des vdr2 löschen verwenden wir eine "readonly" Freigabe (siehe weiter unten).
+
Hier müssen wir ein paar Werkzeuge Installieren.
 +
 
 
<pre>
 
<pre>
//vdr2/video_readonly /var/lib/video.00/VDR2 cifs noauto,credentials=/etc/.fbcredentials 0 0
+
sudo apt-get install wakeonlan smbclient smbfs
 
</pre>
 
</pre>
  
Die Datein /etc/.sambacredentials mus erzeugt werden und enthält die Sama-Login-Informationen. Dies vermeidet diese sensible information in der leicht einsehbaren fstab.
+
===Vorbereitung===
 +
Zum Einhängen (mount) der Samba-Freigabe des entfernten VDR (vdr2) brauchen wir die Login-Informationen und den Freigabenamen.
  
/etc/.sambacredentials
+
Die Login-Informationen werden in einer Datei gespeichert damit sie vor neugierigen Blicken etwas sicherer sind.
 +
 
 +
Wir legen ein neues Verzeichnis unterhalb von /etc/vdr an. Dieses brauchen wir später sowieso um die Konfigurationen zu speichern.
 +
<pre>
 +
cd /etc/vdr
 +
sudo mkdir MountRemoteVDR
 +
sudo chown vdr:vdr MountRemoteVDR
 +
</pre>
 +
 
 +
Nun erzeugen wir die Samba Login-Informationen.
 +
 
 +
/etc/vdr/MountRemoteVDR/.vdr2credentials
 
<pre>
 
<pre>
 
username=NAME
 
username=NAME
Zeile 25: Zeile 35:
 
</pre>
 
</pre>
  
Nicht vergessen die creditials vor neugierigen Blicken zu schützen:
+
Nicht vergessen die Login-Informationen vor neugierigen Blicken zu schützen:
 
<pre>
 
<pre>
chmod 600 /etc/.sambacredentials
+
sudo chmod 600     /etc/vdr/MountRemoteVDR/.vdr2credentials
 +
sudo chown vdr:vdr /etc/vdr/MountRemoteVDR/.vdr2credentials
 
</pre>
 
</pre>
  
==yy==
+
Hinweis: Die ältere Version der Scripte verwendete noch Einträge in der fstab-Datei, aber damit ist der Plegeaufwand höher.
xx.
+
  
 +
===Script zum Anmelden===
 +
 +
Er wird vom VDR Menu aufgerufen.
 +
 +
/usr/lib/vdr/mount-remote-vdr.sh
 
<pre>
 
<pre>
 +
#!/bin/bash
 +
#set -x
 +
. /etc/vdr/MountRemoteVDR/common.conf
 +
. /etc/vdr/MountRemoteVDR/$1.conf
 +
#wake
 +
wakeonlan -i $BROADCAST_DOMAIN $MAC
 +
# wait until it is up
 +
ping $NAME -c1
 +
while [ "$?" != "0" ]
 +
do
 +
    sleep 2
 +
    ping $NAME -c1
 +
done
 +
 +
#Autocreate mountpoint
 +
if [ ! -d $MOUNTPOINT ]; then
 +
mkdir $MOUNTPOINT
 +
fi
 +
 +
# mount with or without fstab
 +
if [ "x$CREDENTIALS" == "x" ]; then
 +
mount $MOUNTPOINT
 +
else
 +
mount -t cifs -o credentials=$CREDENTIALS $SHARE $MOUNTPOINT
 +
fi
 +
 +
touch $VIDEODIR/.update
 +
 +
svdrpsend="/usr/lib/vdr/svdrpsend.pl"
 +
$svdrpsend MESG $NAME ist nun aktiv
  
 
</pre>
 
</pre>
 +
 +
Eventuell kann man den Script verbessern indem man mit smbclient prüft ob die Samba-Freigabe wirklich schon aktiv ist.
 +
 +
===Script zum Abmelden===
 +
Er wird vom VDR Menu aufgerufen.
 +
 +
/usr/lib/vdr/umount-remote-vdr.sh
 +
<pre>
 +
#!/bin/bash
 +
. /etc/vdr/MountRemoteVDR/common.conf
 +
. /etc/vdr/MountRemoteVDR/$1.conf
 +
 +
umount -f $MOUNTPOINT
 +
touch $VIDEODIR/.update
 +
</pre>
 +
 +
===Konfigurationsdateien===
 +
Die Konfigurationsdateien legen wir in unserem bereits erzeugten Verzeichnis /etc/vdr/MountRemoteVDR an.
 +
 +
Alle gemeinsame Konfigurationen wie das Videoverzeichnis und die Broadcastdomain werden hier gespeichert:
 +
 +
/etc/vdr/MountRemoteVDR/common.conf
 +
<pre>
 +
BROADCAST_DOMAIN="192.168.1.255"
 +
VIDEODIR=/var/lib/video.00
 +
</pre>
 +
 +
Die gerätespezifische Konfiguration enthält unter anderem den Namen und die MAC Adresse des entfernten VDR.
 +
 +
/etc/vdr/MountRemoteVDR/vdr2.conf
 +
<pre>
 +
NAME="vdr2"
 +
MAC="00:77:88:99:aa:ff"
 +
MOUNTPOINT="$VIDEODIR/VDR2"
 +
SHARE=//$NAME/video_readonly
 +
CREDENTIALS=/etc/vdr/MountRemoteVDR/.vdr2credentials
 +
</pre>
 +
 +
'''Hinweis 1:'''
 +
Die MAC-Addresse für den entfernten VDR kann dort man mit ifconfig ermitteln:
 +
<pre>
 +
ifconfig
 +
eth0      Link encap:Ethernet  HWaddr 00:77:88:99:aa:ff
 +
........  mehr Details
 +
</pre>
 +
 +
'''Hinweis 2:'''
 +
Die Broadcastdomain begrenzt die WOL Broadcasts auf den angegebenen IP Bereich. Ohne dies Angabe schickt wakonlan den WOL Broadcast an die ganze Welt (255.255.255.255), was wiederum einige Firewalls nicht mögen und damit das WOL Paket blockieren.
 +
 +
===Menubefehle===
 +
Es fehlen noch die Befehle für das VDR-Menu:
 +
 +
/usr/share/vdr/command-hooks/commands.MountRemoteVDR.conf
 +
<pre>
 +
VDR2 anmelden : echo "/usr/lib/vdr/mount-remote-vdr.sh vdr2"  | at now
 +
VDR2 abmelden : echo "/usr/lib/vdr/umount-remote-vdr.sh vdr2" | at now
 +
</pre>
 +
 +
===Weitere VDRs===
 +
Hat man noch mehr VDRs, kann man die leicht hinzufügen.
 +
Einfach noch eine Konfigurationsdatei erstellen, sowie die Menubefehle hinzufügen.
 +
 +
/etc/vdr/MountRemoteVDR/vdr3.conf
 +
<pre>
 +
NAME="vdr3"
 +
MAC="00:77:88:99:aa:03"
 +
MOUNTPOINT="$VIDEODIR/VDR3"
 +
SHARE=//$NAME/video_readonly
 +
CREDENTIALS=/etc/vdr/MountRemoteVDR/.vdr3credentials
 +
</pre>
 +
 +
Samba Login-Informationen:
 +
 +
/etc/vdr/MountRemoteVDR/.vdr3credentials
 +
<pre>
 +
username=NAME
 +
password=PASSWORT
 +
</pre>
 +
 +
Nicht vergessen die Login-Informationen vor neugierigen Blicken zu schützen:
 +
<pre>
 +
sudo chmod 600    /etc/vdr/MountRemoteVDR/.vdr3credentials
 +
sudo chown vdr:vdr /etc/vdr/MountRemoteVDR/.vdr3credentials
 +
</pre>
 +
 +
/usr/share/vdr/command-hooks/commands.MountRemoteVDR3.conf
 +
<pre>
 +
VDR3 anmelden : echo "/usr/lib/vdr/mount-remote-vdr.sh vdr3"  | at now
 +
VDR3 abmelden : echo "/usr/lib/vdr/umount-remote-vdr.sh vdr3" | at now
 +
</pre>
 +
 +
==Konfiguration des entfernten VDR==
 +
 +
===Samba Installieren===
 +
<pre>
 +
sudo apt-get install samba
 +
</pre>
 +
 +
Wir erzeugen eine Samba Freigabe in /etc/samba/smb.conf sowie den erforderlichen Samba-User.
 +
Wir sperren das Schreiben damit der andere VDR nicht versehentlich unsere Filme aufräumt.
 +
<pre>
 +
[video_readonly]
 +
  comment = video
 +
  browseable = yes
 +
  writable = no
 +
  path = /video
 +
  public = yes
 +
  create mask = 0655
 +
</pre>
 +
 +
 +
<pre>
 +
sudo smbpasswd NAME PASSWORT
 +
</pre>
 +
 +
==Links==
 +
* [[c't-VDR]]-Distribution
 +
* [[Samba#Konfigurationsdatei|Samba einrichten]]
 +
* [[NFS|NFS-Freigabe]]
 +
 +
[[Kategorie:Skripte]]

Aktuelle Version vom 29. August 2013, 18:17 Uhr

Inhaltsverzeichnis

[Bearbeiten] Beschreibung

Diese Skripte ermöglichen das Starten eines weiteren VDR per WOL (Wake On Lan). Danach wird das entfernte Aufnahmeverzeichnis automatisch im lokalen Aufnahmeverzeichnis eingehängt.

Die Bedienung erfolgt über neue Befehle im VDR-Menu.

[Bearbeiten] Lokale Konfigurationen

[Bearbeiten] Voraussetzungen

Diese Beschreibung ist für Debian (Lenny) und Ubuntu (Intrepid, Karmic). Hier müssen wir ein paar Werkzeuge Installieren.

sudo apt-get install wakeonlan smbclient smbfs

[Bearbeiten] Vorbereitung

Zum Einhängen (mount) der Samba-Freigabe des entfernten VDR (vdr2) brauchen wir die Login-Informationen und den Freigabenamen.

Die Login-Informationen werden in einer Datei gespeichert damit sie vor neugierigen Blicken etwas sicherer sind.

Wir legen ein neues Verzeichnis unterhalb von /etc/vdr an. Dieses brauchen wir später sowieso um die Konfigurationen zu speichern.

cd /etc/vdr
sudo mkdir MountRemoteVDR
sudo chown vdr:vdr MountRemoteVDR

Nun erzeugen wir die Samba Login-Informationen.

/etc/vdr/MountRemoteVDR/.vdr2credentials

username=NAME
password=PASSWORT

Nicht vergessen die Login-Informationen vor neugierigen Blicken zu schützen:

sudo chmod 600     /etc/vdr/MountRemoteVDR/.vdr2credentials
sudo chown vdr:vdr /etc/vdr/MountRemoteVDR/.vdr2credentials

Hinweis: Die ältere Version der Scripte verwendete noch Einträge in der fstab-Datei, aber damit ist der Plegeaufwand höher.

[Bearbeiten] Script zum Anmelden

Er wird vom VDR Menu aufgerufen.

/usr/lib/vdr/mount-remote-vdr.sh

#!/bin/bash
#set -x
. /etc/vdr/MountRemoteVDR/common.conf
. /etc/vdr/MountRemoteVDR/$1.conf
#wake
wakeonlan -i $BROADCAST_DOMAIN $MAC
# wait until it is up
ping $NAME -c1
while [ "$?" != "0" ]
do
    sleep 2
    ping $NAME -c1
done

#Autocreate mountpoint
if [ ! -d $MOUNTPOINT ]; then
	mkdir $MOUNTPOINT
fi

# mount with or without fstab
if [ "x$CREDENTIALS" == "x" ]; then
	mount $MOUNTPOINT
else
	mount -t cifs -o credentials=$CREDENTIALS $SHARE $MOUNTPOINT
fi

touch $VIDEODIR/.update

svdrpsend="/usr/lib/vdr/svdrpsend.pl"
$svdrpsend MESG $NAME ist nun aktiv

Eventuell kann man den Script verbessern indem man mit smbclient prüft ob die Samba-Freigabe wirklich schon aktiv ist.

[Bearbeiten] Script zum Abmelden

Er wird vom VDR Menu aufgerufen.

/usr/lib/vdr/umount-remote-vdr.sh

#!/bin/bash
. /etc/vdr/MountRemoteVDR/common.conf
. /etc/vdr/MountRemoteVDR/$1.conf

umount -f $MOUNTPOINT
touch $VIDEODIR/.update

[Bearbeiten] Konfigurationsdateien

Die Konfigurationsdateien legen wir in unserem bereits erzeugten Verzeichnis /etc/vdr/MountRemoteVDR an.

Alle gemeinsame Konfigurationen wie das Videoverzeichnis und die Broadcastdomain werden hier gespeichert:

/etc/vdr/MountRemoteVDR/common.conf

BROADCAST_DOMAIN="192.168.1.255"
VIDEODIR=/var/lib/video.00

Die gerätespezifische Konfiguration enthält unter anderem den Namen und die MAC Adresse des entfernten VDR.

/etc/vdr/MountRemoteVDR/vdr2.conf

NAME="vdr2"
MAC="00:77:88:99:aa:ff"
MOUNTPOINT="$VIDEODIR/VDR2"
SHARE=//$NAME/video_readonly
CREDENTIALS=/etc/vdr/MountRemoteVDR/.vdr2credentials

Hinweis 1: Die MAC-Addresse für den entfernten VDR kann dort man mit ifconfig ermitteln:

ifconfig
eth0      Link encap:Ethernet  HWaddr 00:77:88:99:aa:ff
........  mehr Details

Hinweis 2: Die Broadcastdomain begrenzt die WOL Broadcasts auf den angegebenen IP Bereich. Ohne dies Angabe schickt wakonlan den WOL Broadcast an die ganze Welt (255.255.255.255), was wiederum einige Firewalls nicht mögen und damit das WOL Paket blockieren.

[Bearbeiten] Menubefehle

Es fehlen noch die Befehle für das VDR-Menu:

/usr/share/vdr/command-hooks/commands.MountRemoteVDR.conf

VDR2 anmelden : echo "/usr/lib/vdr/mount-remote-vdr.sh vdr2"  | at now
VDR2 abmelden : echo "/usr/lib/vdr/umount-remote-vdr.sh vdr2" | at now

[Bearbeiten] Weitere VDRs

Hat man noch mehr VDRs, kann man die leicht hinzufügen. Einfach noch eine Konfigurationsdatei erstellen, sowie die Menubefehle hinzufügen.

/etc/vdr/MountRemoteVDR/vdr3.conf

NAME="vdr3"
MAC="00:77:88:99:aa:03"
MOUNTPOINT="$VIDEODIR/VDR3"
SHARE=//$NAME/video_readonly
CREDENTIALS=/etc/vdr/MountRemoteVDR/.vdr3credentials

Samba Login-Informationen:

/etc/vdr/MountRemoteVDR/.vdr3credentials

username=NAME
password=PASSWORT

Nicht vergessen die Login-Informationen vor neugierigen Blicken zu schützen:

sudo chmod 600     /etc/vdr/MountRemoteVDR/.vdr3credentials
sudo chown vdr:vdr /etc/vdr/MountRemoteVDR/.vdr3credentials

/usr/share/vdr/command-hooks/commands.MountRemoteVDR3.conf

VDR3 anmelden : echo "/usr/lib/vdr/mount-remote-vdr.sh vdr3"  | at now
VDR3 abmelden : echo "/usr/lib/vdr/umount-remote-vdr.sh vdr3" | at now

[Bearbeiten] Konfiguration des entfernten VDR

[Bearbeiten] Samba Installieren

sudo apt-get install samba

Wir erzeugen eine Samba Freigabe in /etc/samba/smb.conf sowie den erforderlichen Samba-User. Wir sperren das Schreiben damit der andere VDR nicht versehentlich unsere Filme aufräumt.

[video_readonly]
   comment = video
   browseable = yes
   writable = no
   path = /video
   public = yes
   create mask = 0655


sudo smbpasswd NAME PASSWORT

[Bearbeiten] Links