Updated: 09.07.2008 == Automatisches Backup == Will man das ein Computer nur für das Backup zuständig ist, so kannst du noch das Howto "runlevel" in diesem Verzeichnis lesen. Sehr praktisch ist automatisches backup beim einstecken! Dies wird mit udev, hal und ivman realisiert. In diesem Beispiel wird die uuid 154b128d-f198-47b3-ace3-b1a25bc906d6 verwendet, du musst natürlich die eigene verwenden die im Ordner /dev/disk/by-uuid nachgeschaut werden kann und mit (je nach Dateisystem, hier jfs) jfs_tune -U random /dev/device gesetzt werden. Andere Verfahren wie nach Größe, Hersteller usw. zu matchen ist problembehafteter und nicht so flexibel. /etc/hal/fdi/policy/preferences.fdi (im linken Menü downloadbar) macht das das Device beim einstecken ignoriert und nicht automatisch gemounted wird. Die entsprechende kde/gnome Fenster sollten dann für dieses Device nicht mehr auftauchen. ivman registriert den Einsteckevent aber trotzdem. Zuerst sicherstellen dass ivman installiert ist. Die Configuration /etc/ivman/IvmConfigActions.xml (auf der linken seite im Menü downloaded) bewirkt dass "backup" ausgeführt wird wenn die Festplatte eingesteckt wird. Mit /etc/init.d/ivman restart kann man die Konfiguration übernehmen. == Logging == Die erste auskommentierte Zeile ist für Debugzwecke um zu sehen ob grundsätzlich der Befehl ausgeführt wird. Die zweite auskommentierte Zeile versucht eine Umleitung der Ausgabe auf /var/log/backup.log. Besser funktioniert aber wenn das Skript gleich selber in die gewünschte Datei schreibt, dazu in /etc/default/backup > /var/log/backup.log $* >> /var/log/backup.log 2>> /var/log/backup.err } DEBUG=func ]]> LOGOPT sollte kein -s haben, damit wird dann nichts relevantes mehr ausgegeben. Das backup skript funktioniert nur als root, und es ist sinnlos/unmöglich zu versuchen es umzubauen (wg. block devices, wie rsync verwendet wird usw.). Deshalb muss sudo eingerichtet werden, so dass ivman backup mit root starten kann ODER in /etc/ivman/IvmConfigBase.xml Benutzer/Gruppe auf root ändern. Dabei muss aber zusätzlich gesichert sein, dass auch eigene Befehle in den Skripten mit $DEBUG anfangen (sonst werden diese nicht im log aufscheinen). == Rückmeldung == Nun hat man folgendes Problem: Man steckt die Festplatte ein, er macht brav das Backup, aber wie weiß man wann er fertig ist? Man könnte natürlich in /var/log/backup.log schauen ob jedes rsync erfolgreich durchgelaufen ist und die Festplatte ungemounted ist. Um den Benutzer aber eine Meldung zukommen zu lassen kann entweder mit wall(1) gearbeitet werden und damit alle Benutzer informiert werden, oder das Skript wird im Kontext des Benutzers gestartet. Dazu schreiben wir ein kleines Skript welches mit kdialog die information gibt ob backup erfolgreich ausgeführt wurde oder nicht: --------- User Backup --------- #!/bin/sh function error { kdialog --error "$*" exit 1 } function success { kdialog --msgbox "$*" exit 0 } sudo backup || error "Konnte backup nicht erfolgreich durchführen" success "Backup erfolgreich durchgeführt" --------- User Backup --------- Dazu muss natürlich mit visudo ------- visudo ------- User_Alias ADMIN = markus Cmnd_Alias ADMINSCRIPTS = /usr/bin/backup ADMIN ALL = NOPASSWD: ADMINSCRIPTS ------- visudo ------- ermöglicht werden, dass der gefragte Benutzer (hier markus) backup entsprechend mit sudo als root ausführen kann. Jetzt muss aber ivman für den user markus entsprechend konfiguriert werden. Die globale Einstellung ist hier *nicht* mehr notwendig. (/etc/ivman/IvmConfigActions.xml sollte wieder ohne Aktion sein) aber stattessen muss .ivman/IvmConfigActions.xml den gleichen Eintrag haben. (bzw. angepasst damit das user-backup skript statt dem backup direkt aufgerufen wird) Dabei muss dieser Benutzer jetzt aber seine eigene Instanz von ivman starten. Dies erfolgt bei kde am besten über Autostart. Der globale Daemon kann, wenn nicht anders verwendet, nun auch deaktiviert werden, über: /etc/default/ivman einfach: START_DAEMON=no