Saya memiliki pekerjaan pada sistem batch yang berjalan sangat lama dan menghasilkan banyak output. Sebenarnya saya harus mem-pipe output standar melalui gzip untuk menjaga agar batch batch tidak mengisi area kerjanya dan kemudian crash.
longscript | gzip -9 > log.gz
Sekarang, saya ingin menyelidiki output dari pekerjaan saat ini masih berjalan. Jadi saya melakukan ini:
gunzip log.gz
Ini berjalan sangat lama, karena ini adalah file besar (beberapa GB). Saya bisa melihat file output sedang dibuat saat sedang berjalan dan bisa melihatnya saat sedang dibangun.
tail log
> some-line-of-the-log-file
tail log
> some-other-line-of-the-log-file
Namun, pada akhirnya, gzip menemukan akhir file gzip. Karena pekerjaan masih berjalan dan gzip masih menulis file, belum ada footer yang tepat, jadi ini terjadi:
gzip: log.gz: unexpected end of file
Setelah ini, file log yang diekstraksi dihapus, karena gzip berpikir bahwa data yang diekstrak yang rusak tidak ada gunanya bagiku. Saya, bagaimanapun, tidak setuju - bahkan jika beberapa baris terakhir diacak, hasilnya masih sangat menarik bagi saya.
Bagaimana saya bisa meyakinkan gzip untuk membiarkan saya menyimpan file "rusak"?
gunzip -c
menulis output ke stdout ... mungkin itu yang Anda cari? Itu membuat aslinya tidak berubah.