Wie behandelt das CentOS / Linux-Zip-Dienstprogramm Dateien, die während der Komprimierung geändert werden?

903
Zac B

Frage sagt alles: Ich habe ein Verzeichnis, in das ich 'zip -rv' einpacken möchte, aber die Dateien ändern sich ständig (Postgres-Datenbank-Basissicherung). Wird dieser Reißverschluss abbrechen, oder wird es mit einer Warnung fortgesetzt, wie dies bei rsync der Fall ist?

Tar schlägt fehl, wenn eine Datei gefunden wird, die während der Komprimierung geändert wird. Ich habe ein paar Test-Zips für das Verzeichnis ausgeführt, während Dateiänderungen erzeugt wurden, und ich habe keine Fehler gesehen, aber das könnte nur daran liegen, dass ich Glück hatte und zip bereits komprimiert war / noch nicht zu den geänderten Dateien kam. Mein Plan B an dieser Stelle ist, das sich ändernde Verzeichnis in einen anderen Ordner zu synchronisieren und dann den statischen Speicherort zu komprimieren. Dies nimmt jedoch doppelt so viel Speicherplatz in Anspruch, und ich möchte, wenn möglich, dies vermeiden. Wenn zip während der Komprimierung keine Dateiänderungen verarbeiten kann, gibt es ein Dienstprogramm, das dies tut?

OS ist Centos 6, fwiw.

1

1 Antwort auf die Frage

0
chrish

Es geht überhaupt nicht mit ihnen um. zip liest die gesamte Verzeichnisstruktur, wenn das Archiv erstellt wird.

  • Wenn eine Datei während des ZIP-Vorgangs gelöscht wird, erhalten Sie eine Warnmeldung.
  • Wenn eine Datei während des ZIP-Vorgangs erstellt wird, wird sie nicht im Archiv gespeichert, wenn sie in einem Verzeichnis erstellt wurde, das bereits gelesen wurde. Wenn die Datei erstellt wird, bevor zip den Inhalt dieses Verzeichnisses liest, wird es im Archiv gespeichert.
  • Wenn eine Datei während des ZIP-Vorgangs geändert wird, wird ihr Inhalt so sein, wie sie waren, als sie zum Archiv hinzugefügt wurde. Dateien werden gelesen, wenn sie dem Archiv hinzugefügt werden.
Wenn Sie dies stabil behandeln möchten, würde ich vorschlagen, das Verzeichnis, das Sie archivieren möchten, in einen separaten Ordner kopieren, kopieren und dann das Verzeichnis kopieren, überprüfen und löschen. Zumindest wissen Sie dann, dass während des Archivierungsvorgangs keine Fehler auftreten werden. Dies kann sehr kostspielig sein, wenn Sie ein großes Verzeichnis archivieren. Zac B vor 12 Jahren 0