PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Backup via udev-Regel



seemawn
30.08.09, 12:51
Hallo miteinander! Udev ist Fluch und Segen zugleich. Man kann, wie ich das sehe, sauviel damit anstellen, aber es ist rel.schwer zu bedienen.

Ich hab mir gedacht, dass es eine gute Idee waere, ein Backup von seinem Heimatverzeichnis anfertigen zu lassen, wenn man eine bestimmte USB-Festplatte anklemmt. Als Backup-Programm dient Back in time, weil das einfach geil is. Back in time kann man von der Konsole aus aufrufen und direkt ein Snapshot erstellen. Okay, lange Rede, kurzer Sinn, das ist meine udev-Regel:

KERNEL=="sd*1", ENV{ID_SERIAL}=="ST336032_0AS_152000006c4e-0:0", SYMLINK+="backup" RUN+="/usr/bin/backintime-udev"

Das Skript macht folgendes:

#!/bin/bash
/bin/mount /dev/backup
/usr/bin/backintime --backup >> /var/log/udev-custom
/bin/umount /media/backup
DISPLAY=:0 xmessage -center Backup abgeschlossen!

Ruft man das Skript als Root von Hand auf, funktioniert es einwandfrei. Laesst man udev das Skript aufrufen, passieren merkwuerdige Dinge: KDE 4 meldet, (es laeuft die ganze Zeit), dass $HOME nicht gesetzt sei, und dass der Start fehl schluege. Ein Snapshot kann ich nicht machen, weil klauncher ab diesem Zeitpunkt nicht mehr an dbus kann. Laut Fehlermeldung zumindest, und kein Verzeichnis wird im Bildschirmfotospeicherdialog von ksnapshot mehr angezeigt.

Erst wenn man die Fehlermeldung, dass $HOME nicht gesetzt sei, wegklickt, startet er das Backup. Anschliessend muss KDE neu gestartet werden. Was ist denn das Problem da?


Danke fuer eure Antwort

Simon

drcux
30.08.09, 13:35
Hm, backintime braucht doch auf jeden Fall eine GUI, oder irre ich mich da?

seemawn
30.08.09, 13:42
Hm, backintime braucht doch auf jeden Fall eine GUI, oder irre ich mich da?


ja, du irrst :) Das kannst du auch von der kommandozeile bedienen :)

John W
31.08.09, 17:35
Dass $HOME nicht gesetzt ist liegt wohl daran, dass es von einem Benutzer ohne Home-Verzeichnis gestartet wird, z.B. "udev" oder so.
Versuch mal PROGRAM statt RUN, sieh dir unbedingt den udev-Manual Eintrag zu RUN an:
"This can only be used for very short running tasks." <- Betongung auf "very short", eine Sicherung braucht wohl länger als "short".

seemawn
01.09.09, 23:56
Dass $HOME nicht gesetzt ist liegt wohl daran, dass es von einem Benutzer ohne Home-Verzeichnis gestartet wird, z.B. "udev" oder so.
Versuch mal PROGRAM statt RUN, sieh dir unbedingt den udev-Manual Eintrag zu RUN an:
"This can only be used for very short running tasks." <- Betongung auf "very short", eine Sicherung braucht wohl länger als "short".

Hallo!

Vielen Dank fuer Deinen Hinweis! Das mit dem user udev klingt einleuchtend, und dem werde ich nachgehen.

Mit dem Very Short, das hab ich auch gelesen, hab das aber so gelöst, dass das programm sofort in den Hintergrund gefeuert wird. Da startet ein Shellskript ein zweites Shellskript im Hintergrund, das dann das Backup ausfuehrt.

Jedenfalls danke!

Simon