История изменений
Исправление alozovskoy, (текущая версия) :
Там как раз для тебя решение, надо только совсем немного поправить
grep "MirrorAgent\/2.2" /var/log/var/log/sitename.org.access_log | awk '{print "deny "$1}' | sort -u > /home/8popugaev/etc/nginx/blockips.conf && /etc/init.d/nginx reload
/etc/init.d/nginx reload замени на команду, которая у тебя там заставляет nginx перечитать конфиги.
Запускай по крону раз в N минут (хоть раз в секунду, все зависит от размера лога). Еще вариант - добавить в grep выборку по времени если лог слишком большой и плясать от этого.
Для того чтоб сделать реальный реалтайм потребуется больше плясок с бубном и, желательно, специализированные решения. Не думаю что тебе это нужно.
Исходная версия alozovskoy, :
Там как раз для тебя решение, надо только совсем немного поправить
grep "MirrorAgent\/2.2" /var/log/var/log/sitename.org.access_log | awk '{print "deny "$1}' | uniq > /home/8popugaev/etc/nginx/blockips.conf && /etc/init.d/nginx reload
/etc/init.d/nginx reload замени на команду, которая у тебя там заставляет nginx перечитать конфиги.
Запускай по крону раз в N минут (хоть раз в секунду, все зависит от размера лога). Еще вариант - добавить в grep выборку по времени если лог слишком большой и плясать от этого.
Для того чтоб сделать реальный реалтайм потребуется больше плясок с бубном и, желательно, специализированные решения. Не думаю что тебе это нужно.