Топ IP в access.log
Вопрос
Как одной строкой найти 10 IP с наибольшим числом запросов в access.log формата nginx?
Попробуйте сами
Ответьте про себя или вслух, потом откройте ответ и сверьтесь.
Показать ответ и разбор
Коротко
Ответ
awk '{print $1}' access.log | sort | uniq -c | sort -rn | head -10. Первая колонка combined-лога это IP; sort нужен перед uniq -c; sort -rn по числу по убыванию. Вариант на одном awk: awk '{c[$1]++} END {for (i in c) print c[i], i}' access.log | sort -rn | head.
Разбор
awk '{print $1}' access.log | sort | uniq -c | sort -rn | head -10. Первая колонка combined-лога это IP; sort нужен перед uniq -c; sort -rn по числу по убыванию. Вариант на одном awk: awk '{c[$1]++} END {for (i in c) print c[i], i}' access.log | sort -rn | head.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.