[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: lokales Hardlink Backup


Am Mittwoch, 12.10.2011 09:32:15 schrieb Thomas Stiefel:

> Am 12.10.2011 02:09, schrieb Werner Holtfreter:
> > vielleicht findet ja jemand mein Script nuetzlich, das jede
> > Stunde einen Schnappschuss von /home im gleichen Dateisystem
> > platzsparend mit Hardlinks speichert.
> 
> Dafuer gibt es eigentlich ein fertiges Programm, das dies alles
> und ressourcenschonend mit rsync erledigt: rsyncbackup.

> Ich will dir ja nicht zu nahe treten, aber rsyncbackup ist sicher
> einiges effektiver und ressourcenschonender als dein Script.

Ich habe die manpage mal durchgesehen, ob rsync ueberhaupt Quelle und 
Ziel mit Hardlinks verbinden kann (falls sie im gleichen Dateisystem 
liegen, was gegeben ist). Fehlanzeige, rsync kann nur Hardlink-
Beziehungen innerhalb Quelle identisch aufs Ziel uebernehmen. So 
jedenfalls verstehe ich das.

Der Geschwindigkeitstest im Anlegen oder auch nur Ergaenzen von 
Hardlinks zwischen cp und rsync faellt also aus. Dass rsync beim 
aktualisieren von Dateien (statt Links) schneller ist, wurde nie 
bestritten.

LEIDER LIEGT MEINEM SKRIPT EIN FUNDAMENTALER DENKFEHLER ZU GRUNDE:

Zwecks Platzersparnis kopiert es ja keine Dateien, sondern legt nur 
Hardlinks an. Werden Dateien geloescht, verringert sich nur der 
Linkzaehler, die Datei bleibt noch erhalten. Wird sie jedoch geaendert, 
aendert sich (natuerlich) auch das, was ueber die gesicherten Hardlinks 
aufgerufen werden kann - es ist ja ein und dieselbe Datei!
DAS SKRIPT IST WERTLOS.

> > Kann man das drei mal eingefuegte "nice -n 19 ionice -c 3"
> > irgendwo zentral anordnen, so dass es fuer groessere Teile oder
> > fuer das ganze Script gilt (abgesehen davon, es beim Aufruf
> > anzugeben, was wohl auch gehen sollte)?
> 
> Klar geht das. Einfach am Anfang des Scripts dss Ganze als
> Parameter setzen und spaeter nur den Parameter. Also ungefaehr so:
> 
> PERF="nice -n 19 ionice -c 3"
> 
> while [ $i -ge 2 ]
> do
>      $PERF mv backup.$[i-1] backup.$i
>      i=$[i-1]
> done

Ja, ich meinte aber, ob man nice vielleicht vor while oder do setzen 
kann oder vor noch zu setzende Klammern, damit der Klammerinhalt 
wunschgemaess priorisiert wird.

> > Das Script wird beim booten gestartet. Die Echomeldungen
> > erscheinen in der Konsole zunaechst ganz normal linksbuendig.
> > Nach dem Hochfahren gibt es nach jedem "echo" nur noch einen
> > Zeilenwechsel aber keinen Ruecklauf mehr, das sieht dann so
> > aus:
> > 
> > jksjafsaklfj jklsjdf skjksdl
> > 
> >                             jkldsj skdl jkldsjf jdsklfj
> > 
> > Wie kommt das und wie kann man das verbessern?
> 
> Versuche mal folgendes:
> 
> echo "$(date +%F' '%T): LOKAL backup.$i in backup.delete schieben"
>   anstatt
> echo $(date -I;date +%T)" LOKAL backup.$i in backup.delete schieben"

Das aendert leider nichts am Ergebnis. Loesung wird weiter gesucht.
-- 
Viele Gruesse
Werner Holtfreter
-- 
UUGRN e.V. http://www.uugrn.org/
http://mailman.uugrn.org/mailman/listinfo/uugrn
Wiki: https://wiki.uugrn.org/UUGRN:Mailingliste
Archiv: http://lists.uugrn.org/