Давно хочется разобраться с regexp'ами, но книжку читать всухую бесполезно, а на работе всегда надо быстро....
В результате рождаются на свет дикие конструкции типа cat asa_smtp.log | awk '{print $10}' | cut --delimiter=\/ -f2 | cut --delimiter=\( -f1 | cut -d. -f1,2,3 | sort -r |uniq -c | sort -rn | head -n 10
Строка выбирает удаленный ип адрес коннектившихся на 25 порт релея из лога cisco asa, отсекает последний октет адреса, группирует получившиеся подсети с подсчетом числа вхождений, сортирует и показывает топ 10 самых активных "писателей". Дальше ручками проверяем по логам sendmail'а, что адреса в списке не из нашей деревни и банним их навеки вечные, ибо спаммеры окончательно задолбали.
ЗЫ
1. uniq по несортированному списку оставляет много одинаковых строк, видимо память у него все таки короткая, но ман на эту тему молчит.
2. Полезно сравнить между собой списки, сгруппированнные по маскам /24 и /16, у многих операторов большие пулы для adsl, ppp, pppoe и прочих пользовательских хренотеней
В результате рождаются на свет дикие конструкции типа cat asa_smtp.log | awk '{print $10}' | cut --delimiter=\/ -f2 | cut --delimiter=\( -f1 | cut -d. -f1,2,3 | sort -r |uniq -c | sort -rn | head -n 10
Строка выбирает удаленный ип адрес коннектившихся на 25 порт релея из лога cisco asa, отсекает последний октет адреса, группирует получившиеся подсети с подсчетом числа вхождений, сортирует и показывает топ 10 самых активных "писателей". Дальше ручками проверяем по логам sendmail'а, что адреса в списке не из нашей деревни и банним их навеки вечные, ибо спаммеры окончательно задолбали.
ЗЫ
1. uniq по несортированному списку оставляет много одинаковых строк, видимо память у него все таки короткая, но ман на эту тему молчит.
2. Полезно сравнить между собой списки, сгруппированнные по маскам /24 и /16, у многих операторов большие пулы для adsl, ppp, pppoe и прочих пользовательских хренотеней
2 комментария:
Глубина памяти у uniq - одна строка.
То есть или sort -u, или (для сколь-нибудь заметно больших логов) - начитывание в перловый хэш.
тады получается он сравнивает две соседних строки. За перл не скажу, я походу не умею его правильно пользовать, в шелле быстрее получается
Отправить комментарий