AWK is a text-processing utility on GNU/Linux. It is very powerful and uses a simple programming language. It can solve complex text processing tasks with a few lines of code.
This post demonstrates how to parse Azurer PostgreSQL Server log files using AWK.
How to list “connection authorized” text pattern occurrences in the hour:minute db_user format?
grep "connection authorized" postgresql-2021-12-09_100000.log | awk ' { printf("%s %s\n", substr($2, 1, 5), substr($6, index($6,"user=")+5, index($6, "database=")-6)); } '
10:59 db_user_1
10:59 db_user_2
10:59 db_user_1
10:59 db_user_2
10:59 db_user_2
How to list top DB users by “connection authorized” text pattern occurrences sorted in descending order?
grep "connection authorized" postgresql-2021-12-09_100000.log | awk ' { printf("%s %s\n", substr($2, 1, 5), substr($6, index($6,"user=")+5, index($6, "database=")-6)); } ' | awk '{count[$2]++} END {for (word in count) print word, count[word]}' | sort -k 2,2 -n -r
db_user_1 1821
db_user_2 196
db_user_3 136
db_user_4 136
db_user_5 130
How to list the distribution of “connection authorized” text pattern occurrences per hour:minute (HH24:MI) sorted in descending order by the number of occurrences?
grep "connection authorized" postgresql-2021-12-09_100000.log | awk ' { printf("%s %s\n", substr($2, 1, 5), substr($6, index($6,"user=")+5, index($6, "database=")-6)); } ' | awk '{count[$1]++} END {for (word in count) print word, count[word]}' | sort -k 2,2 -n -r
10:53 644
10:23 509
10:29 502
10:22 479
10:52 463
How to list the distribution of “connection authorized” text pattern occurrences per hour:minute:second (HH24:MI:SS) sorted in descending order by the number of occurrences?
grep "connection authorized" postgresql-2021-12-09_100000.log | awk ' { printf("%s,%s\n", substr($2, 1, 7), $6) } '
10:29:44 90
10:28:15 67
10:35:02 61
10:05:51 57
10:30:36 56
Top comments (0)