cat $(ls -tr | tail -1) | awk '{ a[$1] += 1; } END { for(i in a) printf("%d, %s\n", a[i], i ); }' | sort -n | tail -25
Команда cat $(ls -tr | tail -1) | awk '{ a[$1] += 1; } END { for(i in a) printf("%d, %s\n", a[i], i ); }' | sort -n | tail -25
анализирует журналы Apache и выводит 25 самых часто встречающихся IP-адресов.
Описание:
1. cat $(ls -tr | tail -1)
читает последний созданный файл в директории (журнал Apache).
2. awk '{ a[$1] += 1; } END { for(i in a) printf("%d, %s\n", a[i], i ); }'
увеличивает счетчик каждого IP-адреса в файле и выводит количество и IP-адрес в формате «количество, IP-адрес».
3. sort -n
сортирует результаты по возрастанию количества.
4. tail -25
выводит последние 25 строк (25 самых часто встречающихся IP-адресов).
Альтернативы: Можно использовать программы анализа журналов, такие как webalizer
, awstats
или goaccess
, которые обеспечивают более подробную статистику и удобный интерфейс для анализа журналов Apache.