Ein Backup der Daten ist immer sinnvoll. Als Alternative zum herkömmlichen Spiegeln bzw. Kopieren von Festplatten kann man Festplatten online spiegeln mit lsyncd.
Konkret wollte ich zwei USB-Platten an einem RaspberryPi synchron halten. Bisher habe ich das mit einem wöchentlichen cron-Job erledigt, der mittels rsync einmal in der Woche die Platten gespiegelt hat.
Mit lsyncd wird jetzt alle 15 Minuten alles gespiegelt was sich verändert hat, so dass beide Platten fast immer synchron sind und somit auch das Risiko eines Datenverlustes reduziert ist. lsyncd installiert man auf dem RaspberryPi schlicht mit
sudo apt-get install lsyncd
Dann legt man sich noch eine Konfigurationsdatei an unter /etc/lsyncd/lsyncd.conf.lua
settings {
logfile = "/var/log/lsyncd/lsyncd.log",
statusFile = "/var/log/lsyncd/lsyncd.stat",
statusIntervall = 300,
nodaemon = false,
delay = 3600
}
sync {
default.rsync,
init = false, -- won't copy during first start
delete = false, -- won't delete dest files
excludeFrom="/etc/lsyncd.exclude",
source = "/directory1",
target = "/directory2"
}
In diesem Fall wird /directory1 nach /directory2 gespiegelt. Wichtig ist die Option „delete=false“. Ohne diese Option werden in directory1 gelöschte Dateien auch direkt in directory2/ gelöscht. In die Datei /etc/lsyncd.exclude schreibt man Verzeichnisse, die nicht gespiegelt werden sollen (z.B. .svn oder .Trash). Möchte man keine Verzeichnisse ausschließen, kann die Zeile mit excludeFrom auch einfach weg gelassen werden.
Festplatten online spiegeln mit lsyncd, ein tolles Tool, das einfach zu handhaben ist. Über die hier beschriebene Funktion hinaus, kann lsyncd auch Platten remote, also über Rechnergrenzen hinaus Festplatten spiegeln und synchron halten.
Nachtrag: Ich weiß nicht, ob das nur bei mir passiert oder eventuell auch bei anderen. Ich bekam beim Starten des lsyncd mit service lsyncd start die Fehlermeldung „error terminating since out of inotify watches“. Das behebt man einfach mit „echo 65536 > /proc/sys/fs/inotify/max_user_watches“
danke sehr gute infos :)