Mengambil Sebagian Data Log dari File Log yang Besar

Posted by

Beberapa hari yang lalu, ada klien Excellent yang meminta informasi log perihal status pengiriman dan penerimaan suatu email. Tentu saja informasi tersebut dapat diambil dari file log yang tersedia. Proses pengecekan yang dilakukan adalah menggunakan message tracking via zmmsgtrace. Proses pengecekan zmmsgtrace gagal dan dicoba dengan pengecekan via cat dan grep. Pengecekan via cat dan grep juga gagal. Setelah dilakukan pengecekan, file log tersebut berukuran 6 GB lebih. Hal tersebut dikarenakan logrotate yang tidak berjalan dan permissionnya yang tidak memperbolehkan. Pantas saja proses pengecekan via zmmsgtrace dan cat/grep gagal dilakukan.

Adapun data log yang dibutuhkan sebenarnya hanya pada periode tanggal tertentu. Misalnya tanggal 16 Januari dan 17 Januari 2017 saja. Agar pengecekan log tersebut dapat dilakukan, saya melakukan pemisahan/mengambil data yang diperlukan saja dari file log yang besar tersebut. Untuk mendapatkan data tersebut, dapat menggunakan perintah sed
[code lang=’plain’]
sed -n ‘/Jan 16/,/Jan 17/p’ /var/log/zimbra.log > /tmp/log-16-17-jan.txt
[/code]
Dari perintah diatas tersebut, saya mengambil data log dengan semua tulisan yang diawali Jan 16 dan Jan 17 pada file /var/log/zimbra.log dan hasilnya disimpan pada folder /tmp dengan nama log-16-17-jan.txt. Pola pengambilan data tulisan yang diawali dengan Jan 16 dan Jan 17 diambil dari pola log yang ada pada zimbra.log.

Setelah sebagian data log didapatkan, proses pengecekan log via zmmsgtrace maupun cat dan grep dapat dilakukan dengan merujuk pada file log-16-17-jan.txt.

Silakan dicoba dan semoga bermanfaat 🙂

Sumber : http://unix.stackexchange.com/questions/37368/how-can-i-get-entries-for-a-given-time-period-from-a-400mb-log-file

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.