Nie, to bardzo nieatomowe. Może to wpędzić cię w poważne kłopoty, jeśli spakujesz plik, do którego czasami dołącza się plik, na przykład dziennik internetowy.
Gzip czyta, tworzy plik .gz (z bieżącym znacznikiem czasu), kopiuje znacznik czasu oryginalnego pliku, a następnie usuwa oryginał.
Niektóre przerwy mogą pozostawić zbłąkany, niedokończony .txt.gz
plik tuż obok .txt
pliku. Powoduje to problem z integralnością danych: jaki jest prawdziwy plik? Czy to jest
- gzip, który zawiódł, pozostawiając niekompletny / uszkodzony
.txt.gz
? Lub
- wystrzał, który zawiódł, pozostawiając niekompletny / obcięty
.txt
plik? Lub
- Plik został pomyślnie spakowany
txt.gz
i nowo utworzony .txt
plik?
(To ostatnie dzieje się, gdy przejdziesz do katalogu dziennika HTTP i przejdziesz gzip *
).
Generalnie uważam, że rozsądne jest rozwiązywanie tego ręcznie, chyba że dokładnie wiesz, co się stało, ponieważ właśnie to zrobiłeś.
Na szczęście gzip zwykle działa szeregowo, więc powinieneś mieć ten problem tylko z jednym plikiem. Paralelowanie gzip nie jest dobrym pomysłem - nawet jeśli w pełni wykorzysta procesor, spowoduje uszkodzenie dysku, zmuszając go do odczytania kilku plików jednocześnie, znacznie spowalniając wszystkie gzipy. Z drugiej strony SSD lub RAMdisk ...