Как утилита CentOS / Linux zip обрабатывает файлы, которые изменяются во время сжатия?

578
Zac B

Вопрос говорит сам за себя: у меня есть каталог, который я хочу 'zip -rv' вверх, но файлы постоянно меняются (резервное копирование базы данных postgres). Будет ли этот разрыв zip или будет продолжаться с предупреждением, как rsync делает?

Сбой Tar, когда он находит файл, который изменяется во время сжатия. Я запустил несколько тестовых zip-файлов в каталоге, генерируя изменения файлов, и я не видел никаких ошибок, но это может быть просто потому, что мне повезло, и zip уже сжал / еще не получил измененные файлы. Мой план B на этом этапе заключается в том, чтобы rsync изменить каталог для другой папки, а затем сжать статическое местоположение вверх, но это займет вдвое больше места, и я хотел бы избежать этого, если это возможно. Если zip не может обрабатывать изменения файлов во время сжатия, есть ли утилита, которая делает?

ОС Centos 6, FWIW.

1

1 ответ на вопрос

0
chrish

Это не обрабатывает их вообще. zip читает все дерево каталогов, когда начинает создавать архив.

  • Если файл был удален во время операции zip, вы получите предупреждение.
  • Если файл создается во время операции zip, он не будет в архиве, если он был создан в каталоге, который уже был прочитан. Если файл создается до того, как zip прочитает содержимое этого каталога, он будет в архиве.
  • Если файл изменяется во время операции zip, его содержимое будет таким же, каким оно было при добавлении в архив. Файлы читаются по мере их добавления в архив.
Если вы хотите надежно справиться с этим, я бы предложил `rsync` каталог, который вы хотите заархивировать, в отдельное место для копирования, а затем сжать его, проверить и удалить каталог для копирования. По крайней мере, тогда вы знаете, что в процессе архивации не будет сбоев, которые могут быть очень дорогостоящими, если вы архивируете большой каталог. Zac B 12 лет назад 0

Похожие вопросы