Ні, це дуже не атомічно. Це може спричинити великі проблеми, якщо ви gzip файл, який періодично додається, наприклад веб-журнал.
Gzip читає, створює .gz файл (з поточною міткою часу), копіює часову позначку оригінального файлу, а потім видаляє оригінал.
Певні перерви можуть залишити .txt.gz
неподалік незавершений файл поруч із .txt
файлом. Потім створюється проблема цілісності даних: який справжній файл? Це
- gzip, який не вдався, залишивши незавершеним / зіпсованим
.txt.gz
? Або
- невдалий пістолет, залишивши неповний / усічений
.txt
файл? Або
- У файлі успішно зібрано файл
txt.gz
, а новостворений .txt
файл?
(Останнє трапляється, коли ви заходите у свій каталог журналів HTTP і переходите gzip *
)
Я, як правило, вважаю доцільним розбирати це вручну, якщо ви точно не знаєте, що сталося, тому що ви це просто зробили.
На щастя, gzip зазвичай працює серійно, тому у вас повинна бути ця проблема лише з одним файлом. Паралелінг gzip не є хорошою ідеєю - навіть якщо він буде використовувати процесор більш повно, він розтрощить диск, змусивши його читати відразу декілька файлів, що значно уповільнює всі gzip. SSD або RAMdisk, з іншого боку ...