Am Sonntag, 4. Mai 2014, 18:02:29 schrieb Norbert Zawodsky:
ich weiß, hier gibt ein paar echt gute bash/sed/awk/rsync Spezialisten. Ich hoffe, jemand kann mir einen Schubs in die richtige Richtung geben...
Folgende Aufgabe:
Ich möchte ein backup-system, das gelöschte (und später auch modifizierte files) eine gewisse Zeit aufhebt.
Ich stelle mir vor, in "relativ kurzen" zeitlichen Abständen (z.B. minütlich) mit rsync alle Änderungen eines source-directories auf ein backup nachzuziehen. Also per cron
"rsync -az host1:/foo /backups/host1/current/foo" "rsync -az host2:/foo /backups/host2/current/foo"
usw... So weit, so einfach. Nun möchte ich aber zusätzlich noch:
Wenn im source-directory ein file gelöscht wird, soll im backup-directory zuerst eine Kopie des gelöschten files angelegt, und danach das file gelöscht werden.
Beispiel:
Es existieren host1:/foo/bla.txt und auf der backup-maschine /backups/host1/current/foo/bla.txt Dann wird host1:/foo/bla.txt gelöscht
Ehrlich gesagt hört sich für mich das eher wie ein Fall für eine Versionsverwaltung (svn, mercurial, git, ...) als für rsync an. Ein so verwaltetes Repository kann die verschiedenen Zustände eines verwalteten Verzeichnisses nachvollziehen und wiederherstellen. Es können Problemlos der Zustand vor drei Tagen ausgecheckt oder mit dem aktuellen Zustand verglichen werden. Das Einchecken erfolgt bei Softwareentwicklung normal nicht automatisch, sondern wenn ein halbwegs konsistenter Zustand existiert, man kann das aber durchaus auch per cron automatisieren. Wenn Du das aber per cron machen willst, würde sich empfehlen für jeden Lauf ein neues Backupverzeichnis anzulegen und gegen das vom vorigen Backuplauf per Hardlink zu verknüpfen, sodass unveränderte Dateien nicht mehrfach auf der Platte platz verschwenden. Könnte dann etwa so aussehen: rundate=`date +"%Y%m%d%H%M%S"` lastrun=`cat /backups/host1/lastrun` mkdir -p /backups/host1/${rundate}/foo rsync -a --delete --link-dest="/backups/host1/${lastrun}/foo" \ host1:/foo "/backups/host1/${rundate}/foo" echo "${rundate}" > /backups/host1/lastrun Alte Backup-Verzeichnisse können dann einfach weggeworfen werden, wenn sie nicht mehr benötigt werden. -- Machs gut | http://www.iivs.de/schwinde/buerger/tremmel/ | http://packman.links2linux.de/ Manfred | http://www.knightsoft-net.de -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org