Mencari teks dalam file berukuran besar di Linux

Pernah ketemu file log ukuran 10GB keatas? Saya belum pernah aslinya tapi semua berubah sejak kemarin. 😀 Diminta bantuan teman untuk ngecek isi VPSnya kok disk spacenya kritis setelah 4 tahun padahal isi websitenya dan kontennya tidak banyak update. Jadi mestinya ada yang bertambah besar. Hehe. 🙂

Masalahnya orangnya ingin tahu apa isi sekian ribu baris terakhir dari file lognya, atau 1GB saja lah yang terbaru. Kan yang lama – lama sebenarnya sudah tidak terpakai lagi. Dan yang bikin repot itu file lognya tidak dipisah – pisah menggunakan logrotate karena ini masih CentOS 5 kalau ga salah. Akhirnya ya jadi 11Gb sekian.

Kalau dibaca pakai cat atau nano ya tidak masuk akal karena bisa lama sekali dan bisa – bisa crash karena kehabisan memori membuka file sebesar itu. Karena kita tahu apa yang dicari (kasus teman saya: alamat IP) maka bisa menggunakan tail dengan parameter yang tepat:

tail -f -c 10G nama_file | grep yang_dicari

Dimana tail akan membaca setelah ukuran 10GB dan dengan grep kita akan mencari tulisan yang dibutuhkan.

Alternatifnya bisa pakai tac (yang merupakan cat terbalik):

tac < nama_file | grep yang_dicari

Sederhana solusinya tapi kalau belum pernah perlu ya sulit. Hehe. 😀 Untung ditemani kopi dan gorengan pas cari wangsitnya. 😛

Tinggalkan komentar