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

Fr Jul 30 13:54:24 CEST 2021
patent_button.gif valid-html401.png elektra.jpg fsfe-logo.png valid-css.png vim.gif anybrowser.gif