Untuk urusan memilah string, pola (pattern), regex dan lain sebagainya grep, merupakan salah satu tools yang wajib diketahui oleh System Administrator atau DevOps atau Site Reliability Engineering atau apapun istilahnya saat ini.

Waktu nge-grep file log access nginx (custom), muncul

grep "1.2.3.4" /var/log/nginx/rootserver.access_log | tail -n 10
Binary file /var/log/nginx/kurs.web.id.access_log matches

output tersebut hanya tampil di beberapa IP yang di grep.

Di grep kita bisa menambahkan parameter agar grep menganggap binary tersebut sebagai text

  -a, --text                equivalent to --binary-files=text

dengan -a tersebut file binary dibaca sebagai text.

coba lagi dengan menambah -a

grep -a "1.2.3.4" /var/log/nginx/rootserver.access_log | tail -n 10
# output
"07/Apr/2020:09:08:54 +0700" client=1.2.3.4 method=GET request="GET / HTTP/2.0" request_length=483 status=200 bytes_sent=6966 body_bytes_sent=6234 referer=https://situs-website-domain.com/path/lengkap user_agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36" upstream_addr=unix:/run/php/php7.3-fpm.sock upstream_status=200 request_time=0.052 upstream_response_time=0.052 upstream_connect_time=0.000 upstream_header_time=0.052 "jaranguda.com" "-"
"07/Apr/2020:09:09:53 +0700" client=1.2.3.4 method=GET request="GET / HTTP/2.0" request_length=447 status=200 bytes_sent=5659 body_bytes_sent=4927 referer=https://situs-website-domain.com/path/lengkap user_agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36" upstream_addr=unix:/run/php/php7.3-fpm.sock upstream_status=200 request_time=0.056 upstream_response_time=0.056 upstream_connect_time=0.000 upstream_header_time=0.056 "jaranguda.com" "-"

Contoh cat

Dengan menggunakan cat, juga muncul Binary file (standard input) matches. Kurang lebih artinya sama

cat /var/log/nginx/rootserver.access_log | grep "1.2.3.4" | tail -n 10 
# output
Binary file (standard input) matches

untuk caranya sama dengan menambahkan parameter -a di grep.

cat /var/log/nginx/rootserver.access_log | grep -a "1.2.3.4" | tail -n 10

dari dua cara diatas, yang paling cepat adalah grep langsung filenya

real    0m0.614s
user    0m0.335s
sys 0m0.253s
 
# VS 
real    0m0.713s
user    0m0.333s
sys 0m0.370s

Leave a comment

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