У меня есть простой сервер резервного копирования, который синхронизирует несколько сетевых ресурсов, а затем сжимает их в zip-файл, который загружается на ленты.
zip -r /media/1tb/backup/compressed/reports.zip /media/1tb/backup/nightly/reports/
И примерно на полпути я получаю
adding: media/1tb/backup/nightly/reports/active/aa010aq/rpts.2009.12.15/aa010aq.datzip I/O error: File too large zip error: Output file write failure (write error on zip file)
Это на стандартном сервере ubuntu.
Насколько велик файл в момент возникновения ошибки?
Проблема, скорее всего, заключается в том, что файловая система на диске, для которого выполняется резервное копирование, не поддерживает файлы достаточно большого размера. FAT16 ограничен 2 ГБ на файл, FAT32 ограничен 4 ГБ. FAT32 - это наиболее распространенная файловая система, которую можно найти на внешних дисках, если вы явно не переформатируете другую файловую систему.
Если это так, то вам нужно будет переформатировать диск с использованием более совершенной файловой системы (например, ext3 или NTFS) или изменить процедуру, чтобы она не создавала ни одного такого большого архива.
Какую версию zip вы используете? Вам необходимо как минимум 3.0 для поддержки Zip64 (что требуется для создания архивов размером более 4 ГБ).