У меня сильно нашпигованный конфиг Nginx ибо я очень не люблю плохих ботов.
одним из условий в конфиге я собираю в отдельный лог запросы от ботов которые косят юзерагеном под поисковых ботов, но таковыми не являются.
Но так как подсети поисковиков могут измениться хотелось бы настроить автоматическую проверку к примеру топ 10 IP из этого лога.
Прошу вас - помогите написать bash скрипт для автоматизации проверки.
К примеру такой командой
cat /var/log/nginx/access.zakos_pod_good_bot.log | awk '{if ($9=="503") {print $1}}' | sort | uniq -c | sort -nr | head
я получаю ТОП 10 IP , далее пишу их в файл
#!/bin/bash
cat /var/log/nginx/access.zakos_pod_good_bot.log | awk '{if ($9=="503") {print $1}}' | sort | uniq -c | sort -nr | head > dns.txt
Далее логику работы я вижу такой - каждый из этих IP проверяем командой Host, например
host 95.213.246.202
Host 202.246.213.95.in-addr.arpa. not found: 3(NXDOMAIN)
и т.д. Куда то записываем эти данные, в лог какой-то. Далее сканируем этот лог на наличие в нем
yandex.ru
google.com
Так как IP ботов яндекса и гугла возвращает
host 37.9.113.197
197.113.9.37.in-addr.arpa domain name pointer 37-9-113-197.spider.yandex.com.
host 66.249.76.57
57.76.249.66.in-addr.arpa domain name pointer crawl-66-249-76-57.googlebot.com.
Если при сканировании лога нашли Яндекс или Гугл - шлем уведомление админу.
Помогите дописать bash скрипт пожалуйста