Mencari teks dalam file berukuran besar di Linux

By | June 23, 2019

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

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

Kalau dibaca gunakan cat atau nano ya tak masuk akal karena dapat lama sekali dan dapat – dapat crash karena kehabisan memori membuka file sebesar itu. Karena kita tahu apa yang dicari (kasus teman saya: tempat tinggal IP) karenanya dapat 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 dapat gunakan tac (yang adalah 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. ?


Sumber https://servernesia.com