Вопрос про команду cat

D
На сайте с 28.06.2008
Offline
1114
796

Не могу понять почему командой:

cat /var/log/nginx/access.log | egrep -v 'png|gif|jpg|swf|\.js|css|YandexMobileBot|Yahoo|Mediapartners-Google|YandexBot|Googlebot|msnbot|bingbot|Mail\.RU' | awk '{print $1}' | sort | uniq -c | sort -nr | head

все равно считает IP у строк имеющих рефер

"Mozilla/5.0 (compatible; YandexBot/3.0; +http://yandex.com/bots)"

почему то гугл бот с таким рефером пропускает, а яндекс нет...

"Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"

Как фильтрануть Яндекс бота?

[umka]
На сайте с 25.05.2008
Offline
456
#1

Ваш вопрос про команду "grep", а не про команду "cat" :)

Приведите полностью строку или кусок лог-файла со строкой, которую данный egrep не отсеивает.

Лог в помощь!
pupseg
На сайте с 14.05.2010
Offline
364
#2

egrep <> grep

---------- Добавлено 14.12.2016 в 22:37 ----------

чорт, опередили на несколько часов

Качественная помощь в обслуживании серверов. (/ru/forum/661100) Бесплатных консультаций не даю, не помогаю, не обучаю. Минималка от 100$. Как пропатчить KDE-просьба не спрашивать. Есть форумы (http://linux.org.ru) и полезные сайты (http://www.opennet.ru/).
baas
На сайте с 17.09.2012
Offline
171
#3
Dram:
Не могу понять почему командой:

все равно считает IP у строк имеющих рефер

почему то гугл бот с таким рефером пропускает, а яндекс нет...


Как фильтрануть Яндекс бота?

Ради интереса проверил.

3# cat /mnt/tets

"Mozilla/5.0 (compatible; YandexBot/3.0; +http://yandex.com/bots)"
"Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
"Mozilla/5.0 (compatible; bagas/2.1; +http://www.google.com/bot.html)"
"Mozilla/5.0 (compatible; bagasbot/2.1; +http://www.google.com/bot.html)"

# cat /mnt/tets | egrep -v 'png|gif|jpg|swf|\.js|css|YandexMobileBot|Yahoo|Mediapartners-Google|YandexBot|Googlebot|msnbot|bingbot|Mail\.RU'

"Mozilla/5.0 (compatible; bagas/2.1; +http://www.google.com/bot.html)"
"Mozilla/5.0 (compatible; bagasbot/2.1; +http://www.google.com/bot.html)"

Но я предпочитаю без cat.

# egrep -v 'png|gif|jpg|swf|\.js|css|YandexMobileBot|Yahoo|Mediapartners-Google|YandexBot|Googlebot|msnbot|bingbot|Mail\.RU' /mnt/tets | awk '{print $1}' | sort | uniq -c | sort -nr | head

2 "Mozilla/5.0

Возможно вы что то упускаете, либо команду другую указываете, либо в логе что то другое.

Настройка BSD систем. (https://www.fryaha.ru) Знание сила, незнание Рабочая сила!
DV
На сайте с 01.05.2010
Offline
644
#4

Файл для теста

Можно awk обойтись:

cat temp/access.txt | awk -F\" '{if ($6!~"google|yahoo|bing") print $1}'

Выражение -F\" '{if ($6!~"google|yahoo|bing") означает "не входит ни один из колонки 6, образованной разделителями двойная кавычка".

txt access.txt
VDS хостинг ( http://clck.ru/0u97l ) Нет нерешаемых задач ( https://searchengines.guru/ru/forum/806725 ) | Перенос сайтов на Drupal 7 с любых CMS. ( https://searchengines.guru/ru/forum/531842/page6#comment_10504844 )
D
На сайте с 28.06.2008
Offline
1114
#5

Прошу прощения, команда работает нормально, просто с одних и тех же айпи у Яши ходят разные боты, вот те которых я не перечислел и считает

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий