Как проверить наличие трафика по домену
У меня есть большой список доменов, вот его небольшая часть:
domain1.com
domain2.com
domain3.com
Для начала я проверил, все ли домены работают:
while read domain; do curl -Is "http://$domain" | head -n 1; done < domains.txt
Затем я пошел на хед, на котором часть из этих доменов работает и проверил, сколько раз они встречаются в access.log
. Так как логи в формате JSON, то я ввел команду:
jq -r '.http_host' /var/log/nginx/access.log | grep -Ff domains.txt | sort | uniq -c | sort -nr
Ну что же, я получил информацию только по одному домену из того большого количества, которое у меня есть.
Но это я узнал только из сегодняшнего access.log
, а вот как проверить наличие доменов в 47 файлах access.log
?
Тут на помощь приходит великолепная утилита, аналог grep
, только для архивов - zgrep
:
zgrep -h -Ff domains.txt /var/log/nginx/access.log* | jq -r '.http_host' | sort | uniq -c | sort
-nr
Также есть вот такая полезная команда, которая позволяет проверить трафик только на поддомены основного домена:
/var/log/openresty $ grep -Er '[a-zA-Z0-9.-]+\.domain\.com' .