Benutzer-Werkzeuge

Webseiten-Werkzeuge

A PCRE internal error occured. This might be caused by a faulty plugin

datensicherung_cron

====== Automatische Datensicherung via rsync / crontab ====== **Warnung**: Das Vorgehen erfordert ein gewisses Hintergrundwissen über Linux. Man kann bei Fehlern durchaus die Installation des Hifidelio zerlegen. Auch wird selbstverständlich für die Vollständigkeit des Backups nicht garantiert, da diese von etlichen Faktoren abhängen kann, die bisher noch nicht getestet wurden. Also bitte nur testen wer weiß, was sie tut und __auf eigene Gefahr__! ===== Ziel ===== Ein automatisches wöchentliches Backup aller Musik-Datein auf dem HIfidelio via Netzwerk auf ein "Network Attached Storage"-Gerät (NAS) oder einen Linux-Server. Das ganze wurde getestet mit einem QNAP TS-101, dürfte aber (evtl. mit einigen Modifikationen) für jedes Linux-basierte NAS funktionieren. ===== Voraussetzungen ===== Dieser Tipp macht nur Sinn für Hifidelio-Besitzer, welche folgende Voraussetzungen erfüllen. Alle andern lassen das bitte besser sein... * wissen wie telnet funktioniert, sich auf der Hifidelio-Shell einigermassen zurechtfinden (cd, cp, mv, mkdir, ln -s ...) und am Fidel den Netzwerkdienst "Telnet" eingeschaltet haben * den vi Texteditor bedienen können (zumindest cursor bewegen und speichern ;-) * ein Gerät im Netzwerk haben, das rsync Verbindungen annehmen kann, z.B. einen Linux/Unix-Server oder ein Linux-basiertes NAS * getestet mit einem QNAP TS-101 ===== Backup ===== Ein einzelnes manuelles Backup kann mittels rsync direkt gemacht werden. Dazu muss das [[http://www.hifidelio-user.de/downloads.php?view=detail&id=7|Paket mit zusätzlichen Linux-Tools V2]] aus dem Download-Bereich des Forums installiert werden. Anleitung dazu gibts im gelinkten Thread. Ein Backup des ''/audio/music'' Folders via rsync auf ein Network Attached Storage (NAS) Laufwerk: <code>/usr/local/bin/rsync -av /audio/music/ <usernameAufDemNAS>@<IP des NAS>::<rsyncRemoteModule>/<Pfad des Backup Verzeichnis></code> Bemerkungen dazu: * merkwürdigerweise geht das (zumindest bei mir) ohne Passwort, nur mit dem Usernamen des NAS * rsync kennt zwei Kommunikationsmodi: * via remoteShell rsh (oder auch secureShell ssh) * dazu müssen sowohl Fidel wie NAS rsh oder ssh unterstützen, was bei mir nicht der Fall war * via rsync-Daemon: * Dazu muss auf dem NAS eben dieser rsync-Daemon laufen, das ist beim QNAP TS-101 per default der Fall. Ich habe darum diese Kommunikation benutzt * der QNAP TS-101 richtet automtisch für jeden eingerichteten Netzwerk-Share ein "rsync-module" ein, auf welche man dann via Daemon vom Fidel aus zugreifen kann. * Achtung: für jeden Modus sieht das rsync-Kommando etwas anders aus (vor allem die zwei Doppelpunkte :: ) , siehe [[http://rsync.samba.org/ftp/rsync/rsync.html|Doku von rsync]] Das von mir konkret verwendete Kommando sah so aus: <code>/usr/local/bin/rsync -av /audio/music/ administrator@10.1.1.5::backupfidel/audio/music/ >> /tmp/rsync.log</code> ===== Automatisches, periodisches Starten des Backup ===== Auf dem Hifidelio läuft out of the box kein crontab. Mit dieser Anleitung hier kann das aber nachträglich eingerichtet werden. Die Lösung erfolgt über Verwendung einer erweiterten busybox, siehe [[http://www.hifidelio-user.de/viewtopic.php?t=2946&start=0&postdays=0&postorder=asc&highlight=busybox|hifidelio-user.de Forum: Busybox 1.3.1]]: - Entsprechend des Threads [[http://www.hifidelio-user.de/viewtopic.php?t=2946&start=0&postdays=0&postorder=asc&highlight=busybox|hifidelio-user.de Forum: Busybox 1.3.1]] eine andere Version der [[http://www.busybox.net/|busybox]] holen und auf den Fidel kopieren. - ''/bin/crond'' und ''/bin/crontab'' mit ''ln -s'' auf die neue busybox linken. - Ein Verzeichnis ''/var/spool/cron''... anlegen. - ''/bin/crond'' im Hintergrund starten. - Mittels des Befehls ''crontab'' das rsync backup als cron-job eintragen. Dazu wird per default der ''vi'' Texteditor verwendet. Sowohl ''crond'' als auch ''crontab'' immer mit der option -c <dir> aufrufen, da das sonst die config in einem flüchtigen Verzeichnis (unter /var/spool/) abgelegt ist. Am besten unter ''/data/'' ein passendes Verzeichnis einrichten. Hier wurde ''/data/devel/crontabs'' dazu verwendet. ===== Booten und Beenden ===== ''crond'' beim Booten des Hifidelio starten und beim Shutdown wieder beenden: Dazu ein entsprechendes Start/Stop Skript:<code> #!/bin/sh case "$1" in start) # Startup mkdir /var/spool mkdir /var/spool/cron /bin/crond -b -L /tmp/cron.log -c /data/devel/crontabs/ ;; stop) # Shutdown killall -q crond while pidof crond > /dev/null; do sleep 1; done ;; restart) $0 stop $0 start ;; *) echo "Usage: $0 {start|stop}" echo " start ... Starts the crond." echo " stop ... Stops crond." exit 1 ;; esac </code> im Verzeichniss ''/etc/init.d'' erstellen und entsprechend der Anforderungen an die runlevel über ''/etc/rcX.d'' ("X" = runlevel) verlinken. Passendes Runlevel: Hier wurde Runlevel 3 gewählt und im ''rc3.d'' eingetragen. <code>cd /etc/rc3.d ln -s /init.d/cron s99cron </code> Als Dokumentation hier noch der Eintrag in der crontab:<code> root@hifidelio:/# crontab -c /data/devel/crontabs/ -l 0 22 * * 6 nice -19 /usr/local/bin/rsync -av /audio/music/administrator@10.1.1.5::backupfidel/10.1.1.11/audio/music/ >> /tmp/rsync.log</code> Auf Deutsch: Zur Minute 0 zur Stunde 22 an jedem Tag (*, 1-31) in jedem Monat (*,1-12) wenn es Samstag ist (6) dann Kommando ausführen. Das nice -19 führt dazu, dass das Backup mit niedriger Priorität läuft und den Fidel nicht am Musikspielen hindert.

datensicherung_cron.txt · Zuletzt geändert: 2007/08/20 11:41 (Externe Bearbeitung)