tar /Pfad/zur/Datei: file changed as we read it :(

moonlook

Meteorist
Hallo,

angeregt durch http://www.bsdforen.de/showthread.php?t=1320
hab ich mir ein kleines Backup-Script zugelegt. Das funktioniert soweit ganz gut,
bis tar auf eine Datei trifft, die waehrend der Erstellung veraendert wurde.

Tar gibt dann ne Meldung raus:
Code:
tar: /Pfad/zur/Datei: file changed as we read it
tar: Error exit delayed from previous errors

Die Datei ist dann zwar im Archiv, allerdings stellt sich mir zum einen die Frage, ob und wie man Dateien, die im Archiv landen sollen, waehrend des tar-Vorganges sperren kann, so das obige Meldung umgangen wird.
Oder zum anderen, ob solche betroffenen Dateien dann auch 'ok' sind, also sicher ohne Fehler (in einem Fall ist es eine DB gewesen, die gecheckt, war ok) oder koennen dadurch im Falle des Falles kaputte Dateien entstehen?

P.S.: Ich bin mir nicht sicher, ob ich das lieber in den Bereich Anwendungen haette schreiben sollen. Wenn ja, bitte verschieben.
 

dagnu

Well-Known Member
Es kommt ganz darauf an, um was für Daten und Programme es sich handelt.

Datenbanken können sich in diesem Augenblick z.B. in einem inkonsistenten
Zustand befinden - sie werden sicherlich Bit für Bit richtig geschrieben - aber
ob du nach der Wiederherstellung mit dem Inhalt was anfangen kannst ist
fraglich. Ähnlich verhält es sich auch bei Anwendungen die mehrere Dateien
für ein Projekt oder ähnliches verwenden, wenn diese dann in unterschiedlichen
Versionen im Archiv landen, kannst du sie später nicht mehr verwenden.
Für fast all diese Spezialitäten gibt es aber Backup Lösungen, z.B. einen Datenbank
Export, der dann gespeichert wird. Für alles andere bieten sich temporär geänderte
Zugriffsrechte oder ein vorübergehendes Stoppen der zugreifende Dienste und
Anwendungen an.
 

Maledictus

FreeBSD ftw
Ich würde "für alles andere" (siehe dagnus post) snapshots vorschlagen, dann muss man den Programmen die auf die Dateien zugreifen nicht die Rechte entziehen.
Setzt allerdings voraus, dass du FreeBSD ab 5.x benutzt.
 

moonlook

Meteorist
Danke fuer die Antworten, dagnu (das mit den DB's dachte ich mir schon, deswegen auch die Frage) und Maledictus. Snapshots werde ich mir mal anschauen, ok.
 

moonlook

Meteorist
Hmm, Snapshots werden mir ja wohl nichts nuetzen, da nur komplette Partitionen erfasst werden und ich im Script (was ihr ja nicht wissen konntet) auch ein paar Verzeichnisse per exclude auslassen will, gerade wegen des unnuetzen Speicherbedarfs der Sicherung.

Falls ich falsch liege, berichtigt mich bitte.
 

Maledictus

FreeBSD ftw
Kannst ja trotzdem snapshots benutzen, machst einfach snapshots von allen partitionen, von denen du was sichern willst und löschst die danach wieder. Snapshots sind so geil, die brauchen beim anlegen und auch für kurzfristiges benutzen so gut wie keinen Speicherplatz.

Ich dachte jetzt nicht daran, dass du den snapshot als Sicherung benutzt, dafür sind die nur bedingt geeignet.
Du machst nen snapshot und sicherst dann die daten vom Snapshot :)
 
Oben