Mengenal perintah tail pada Linux
Setiap kali ada akses ke web server maka akan dibuat catatannya ke dalam file log, ini biasa informasi saja atau adanya error yang terjadi. Untuk membaca file di Linux sendiri ada berbagai macam cara dan sebaiknya jangan gunakan vim
atau nano
karena kita ingin mengeditnya. Secara mendasar biasanya menggunakan echo
tapi kalau ukuran filenya besar malah sulit kita membaca isinya. Apalagi kalau kita hanya membutuhkan data terbaru atau yang diletakkan pada bagian akhir.
Karena itulah saya ingin mengenal satu tool yang ada pada Linux yakni tail
, fungsinya adalah membaca file tapi dimulai dari baris akhirnya. Jadi memang sesuai namanya yang berarti ekor. Cocok kan dengan kebutuhan kita? 🙂
Cara penggunaannya sendiri sangatlah mudah, saya contohkan dengan membaca file log Apache di VestaCP:
tail /var/log/apache2/domains/nama_domain.com.log
Kurang lebih isinya akan seperti ini:
161.202.26.84 - - [01/Jul/2016:17:50:30 -0400] "GET /favicon-32x32.png HTTP/1.1" 200 1164 "-" "http.rb/1.0.2"
161.202.26.84 - - [01/Jul/2016:17:50:33 -0400] "GET /favicon-96x96.png HTTP/1.1" 200 3469 "-" "http.rb/1.0.2"
161.202.26.84 - - [01/Jul/2016:17:50:35 -0400] "GET /favicon-16x16.png HTTP/1.1" 200 599 "-" "http.rb/1.0.2"
161.202.26.84 - - [01/Jul/2016:17:50:36 -0400] "GET /manifest.json HTTP/1.0" 200 880 "-" "http.rb/1.0.2"
161.202.26.84 - - [01/Jul/2016:17:50:40 -0400] "GET /safari-pinned-tab.svg HTTP/1.1" 200 1975 "-" "http.rb/1.0.2"
161.202.26.90 - - [01/Jul/2016:17:51:24 -0400] "HEAD / HTTP/1.0" 200 478 "-" "Ruby"
161.202.26.90 - - [01/Jul/2016:17:52:53 -0400] "HEAD / HTTP/1.0" 200 478 "-" "Ruby"
161.202.26.90 - - [01/Jul/2016:17:54:57 -0400] "HEAD / HTTP/1.0" 200 478 "-" "Ruby"
161.202.26.90 - - [01/Jul/2016:17:58:02 -0400] "HEAD / HTTP/1.0" 200 478 "-" "Ruby"
161.202.26.90 - - [01/Jul/2016:17:58:55 -0400] "HEAD / HTTP/1.0" 200 478 "-" "Ruby"
Secara default akan menampilkan 10 baris terakhir.
Bagaimana kalau anda ingin membaca lebih dari 10 baris? Mudah sekali kok:
tail -n 50 nama_file
Ini akan menampilkan 50 baris dari isi filenya.
Ada satu lagi bagi yang suka memantau update file lognya, jadi selama sesi SSH anda terbuka dan proses tail masih aktif akan direfresh terus datanya:
tail -f nama_file
Dan secara default parameter -f
akan mengecek ulang filenya setiap 1 detik, dan ini bisa kita atur kok:
tail -f -s 5 nama_file
Dan kita sudah menginstruksikan agar diperiksa setiap 5 detik saja. Besarkan waktunya apabila jarang ada data baru yang ditambahkan.
Ini jarang saya gunakan tapi berguna untuk melihat 2 buah file (atau lebih) dan membandingkan isinya:
tail nama_file nama_file2
Tampilannya akan mirip seperti ini:
==> nama_domain.com.log <==
66.249.79.230 - - [01/Jul/2016:13:17:52 -0400] "GET / HTTP/1.0" 200 848 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
180.76.15.150 - - [01/Jul/2016:14:25:21 -0400] "GET / HTTP/1.0" 200 1329 "-" "Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)"
173.208.169.42 - - [01/Jul/2016:14:28:24 -0400] "GET /?q=user/ HTTP/1.0" 200 1329 "-" "Mozilla/37.0.2 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)"
180.76.15.32 - - [01/Jul/2016:16:31:07 -0400] "GET / HTTP/1.0" 200 1329 "-" "Mozilla/5.0 (compatible; Baiduspider/2.0;
207.46.13.62 - - [01/Jul/2016:17:33:42 -0400] "GET / HTTP/1.0" 200 848 "-" "Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)"
==> nama_domain.com.error.log <==
[Wed Jun 29 20:48:54 2016] [error] [client 142.0.128.217] script '/home/chandra/web/nama_domain.com/public_html/index.php' not found or unable to stat, referer: http://www.nama_domain.com/index.php
[Wed Jun 29 20:48:59 2016] [error] [client 123.126.32.102] script '/home/chandra/web/nama_domain.com/public_html/index.php' not found or unable to stat, referer: http://www.nama_domain.com/index.php
[Thu Jun 30 01:16:51 2016] [error] [client 151.80.31.109] script '/home/chandra/web/nama_domain.com/public_html/index.php' not found or unable to stat
[Fri Jul 01 03:02:32 2016] [error] [client 54.152.209.41] script '/home/chandra/web/nama_domain.com/public_html/index.php' not found or unable to stat
[Fri Jul 01 10:36:48 2016] [error] [client 95.213.182.45] script '/home/chandra/web/nama_domain.com/public_html/index.php' not found or unable to stat
Catatan: Saya potong hasilnya menjadi 5 baris terakhir karena 10 baris terlalu banyak dan isi lognya sendiri masih mirip – mirip.
Kalau anda belum pernah memiliki sebuah file log berukuran besar (rekor pribadi 2GB dan sampai terpaksa saya matikan di Apache) maka akan jarang berurusan dengan membaca isinya. Apalagi kalau tidak ada masalah apapun. Saya menggunakannya karena penasaran sekali apa isi file lognya kok bisa 1 minggu bisa bertambah menjadi GB. Karena itulah saya pantau memanfaatkan tail.