Я пытаюсь получить результат распределения в стиле dtrace при выполнении awks для больших файлов журнала после DDoS, чтобы его было легче читать:
# tail -1000 access_log | awk '{ print $1 }' | sort | uniq -c | sort -nr | awk '{printf("\n%s ",$0) ; for (i = 0; i<$1 ; i++) {printf("*")};}'
43 192.168.0.1 *******************************************
38 192.168.0.2 **************************************
Надеюсь, это может выглядеть примерно так:
value ------------- Distribution ------------- count
192.168.0.1 @@@@@@@@@ 43
192.168.0.2 @@@@@@@@ 38
Где @ ' s - это меньшая сводка количества и выполнения * для числа. Автоматическое масштабирование при каждом запуске было бы дополнительным бонусом по сравнению с тем, что мне приходилось делать математику, чтобы выяснить, как ранжировать каждый счет.