Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
usbstick mit udev und unison aktuell halten
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

 
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German) Deutsche Dokumentation
View previous topic :: View next topic  
Author Message
pi
n00b
n00b


Joined: 01 Nov 2002
Posts: 63
Location: Jena - Thüringen - Deutschland

PostPosted: Sat Mar 18, 2006 7:57 pm    Post subject: usbstick mit udev und unison aktuell halten Reply with quote

Das schöne an USB-Sticks ist, das sie den Schlüsselanhänger ersetzen und es einem ermöglichen allerlei Daten parat zu haben. Nur muss jetzt der USB-Stick mit der eigenen Festplatte synchronisiert werden....

Als erstes der fstab-Eintrag für den USB-Stick:
Code:
/dev/usbhd1             /mnt/usb/stick  vfat            noauto,users,rw,sync    0 0

-der Stick wird auf /mnt/usb/stick eingehangen und als device /dev/usbhd1 benutzt

Damit usbhd1 auch wirklich immer der gleiche Stick ist, muss eine udev-Regel her. Bei mir /etc/udev/rules.d/06-usbsticks.rules. Der Eintrag der hier interessiert ist:
Code:
BUS="usb", KERNEL="sd*", SYSFS{serial}=="ef50f40efe5c48", NAME="%k", SYMLINK="usbhd%n", GROUP="disk"

-SYSFS{serial}=="ef50f40efe5c48" auf den eigenen Stick so anzupassen, dass es den Stick eindeutig beschreibt! Siehe udev-howto
danach:
Code:
udevstart

ausführen um die Regel einzulesen.

Jetzt den Stick anstecken, und die Links sollten wie folgt entstehen:
/dev/usbhd -> sda
/dev/usbhd1 -> sda1
...

unison installieren (gtk-useflag setzen für das GUI) und ein Projekt erstellen, welches die Dateien mit /mnt/usb/stick synchronisiert. Bei mir heisst das unison-Projekt 'usb-stick'.
Als nächstes wird ein kleines Script gebraucht, welches den USB-Stick einbindet und unison mit dem Projekt startet:
Code:

#!/bin/sh
/usr/bin/logger "`/bin/su USER -c \" \
        /bin/mount /mnt/usb/stick 2>&1 \
        && XAUTHORITY=/home/USER/.Xauthority DISPLAY=:0.0 /usr/bin/unison usb-stick -ui graphic -perms 0 \" `" &
exit 0

-USER mit dem eigenen Benutzernamen ersetzen
-/usr/bin/logger sorgt dafür, dass eventuelle Fehlermeldungen im syslog erscheinen
-da das Script später in einer root-Umgebung läuft werden mit /bin/su alle Befehle mit den eigenen Rechten ausgeführt
-/bin/mount /mnt/usb/stick 2>&1 bindet den USB-Stick ein und lenkt die Fehlerausgabe indirekt auf syslog um
-unison wird nur gestartet, wenn das Einbinden erfolgreich war. Als Projekt wird usb-stick gewählt. Da in vfat nicht alle permissons darstellbar sind, versucht unison diese bei jedem Lauf abzugleichen. Dies wird mit '-perms 0' unterbunden/ignoriert. Um das GUI benutzen zu können, ist die XAUTHORITY und DISPLAY Umgebungsvariable zu setzen.
-das Script unter /etc/udev/scripts/usb-stick-autorun.sh abspeichern und Ausführungsrechte setzen

Das usb-stick-autorun.sh-Script soll beim anstecken des USB-Sticks automatisch ausgeführt werden, dazu die UDEV-Regel um RUN="/etc/udev/scripts/usb-stick-autorun.sh" erweitern. An meinem Beispiel ergibt das die Regel:
Code:

BUS="usb", KERNEL="sd*", SYSFS{serial}=="ef50f40efe5c48", NAME="%k", SYMLINK="usbhd%n", GROUP="disk" RUN="/etc/udev/scripts/usb-stick-autorun.sh"

-udevstart ausführen um die Änderung wirksam werden zu lassen


Sobald der Stick angesteckt wird, werden die device-Links angelegt, der stick eingebunden und das unison-Projekt für die Synchronisation aufgerufen. Sollten zwischen Rechner und Stick Differenzen auftreten, werden diese grafisch angezeigt. Der Benutzer kann die Synchronisation beeinflussen und bestätigen.

Und wer den autorun-Service einmal nicht starten will drückt fleissig die Strg-Taste :wink:
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German) Deutsche Dokumentation All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum