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