Split text file di Linux/FreeBSD

Apabila kita mau memonitor log file aplikasi yang sifatnya sangat aktif semacam squid terkadang besaran file log bisa berukuran sangat besar, misal di UNS untuk satu minggu aja bisa mencapai 2 Gb.
Hal ini akan sangat menyulitkan sewaktu memproses log file ini karena ukurannya udah sangat besar.

Di linux atau freebsd ada fasilitas yang bisa di pakai untuk mensplit file text menjadi beberapa file dengan ukuran lebih kecil. Biasanya kita membagi berdasarkan jumlah line-nya.

Misal kita lihat file access.log dari squid….

> ls -l
-rw-r–r– 1 theuns ggroup 42046520 2008-09-13 11:42 access.log

Di contoh di atas kita lihat ukuran filenya adalah 42MB. Mari kita cek jumlah baris dari file tersebut dengan cara :

> wc -l access.log
146330 access.log

dari sini kita bisa menentukan mau di split jadi berapa file dengan ukuran terserah kita, misal kita akan split jadi 3 file dengan masing-masing jumlah bari < 60000. Perintahnya adalah sebagai berikut :

> split -l 60000 access.log
> ls -l

total 79124
-rw-rw-r– 1 theuns ggroup 40465200 2008-09-13 12:00 access.log
-rw-rw-r– 1 theuns ggroup 16598163 2008-09-13 12:05 xaa
-rw-rw-r– 1 theuns ggroup 16596545 2008-09-13 12:05 xab
-rw-rw-r– 1 theuns ggroup 7270492 2008-09-13 12:05 xac

Udah deh kita udah dapet file yang lebih kecil sehingga memprosesnya juga bisa lebih cepet 🙂