Grep все, що можна

Про
grep
знають якщо не всі, то багато читачів Хабра, проте його численних родичів знають небагато.

Давайте дізнаємося, як можна грепать все, що таїть в собі хоч крихту тексту.
Читати далі →

Пара корисних команд, які можуть знадобитися при DDoS і не тільки

У моєму випадку, як frontend сервера, варто nginx і формат access-лода має вигляд:

log_format main '$remote_addr — $remote_user [$time_local] "$host" "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for" -> $upstream_response_time';

Що на виході дає щось на зразок такого рядка:

188.142.8.61 — - [14/Sep/2014:22:51:03 +0400] «www.mysite.ru» «GET / HTTP/1.1» 200 519 «6wwro6rq35muk.ru/» «Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.191602; .NET CLR 3.5.191602; .NET CLR 3.0.191602» "-" -> 0.003

1. tail-f /var/log/nginx/nginx.access.log | cut-d ' ' -f 1 | logtop

Дозволяє отримати загальну картину: розподіл унікальних IP, з яких йдуть запити, кількість запитів з однієї IP і т.д.
Найцінніше — що все це працює в режимі реального часу і можна моніторити ситуацію, вносячи якісь зміни в конфігурацію (наприклад просто забанити ТОП 20 найбільш активних IP через iptables або тимчасово обмежити географію запитів в nginx через GeoIP http://wiki.nginx.org/docs/http/ngx_http_geoip_module.html).

Читати далі →

Ахаха, HotSpot, що ти робиш, припини!

       
 
 Як ви напевно вже знаєте , скоро в Пітері пройде чергова конференція Joker . Я збираюся зробити на ній доповідь про те, як розслідувати поведінку JVM, позірна спочатку таємничим і загадковим. Цей пост — тизер, призначений для того, щоб дати вам можливість зрозуміти, чого чекати від доповіді.
 
Припустимо, що до вас раптом приходить інформація про проблему: при збірці сміття відображуються причини «Last Ditch Collection» і «No GC» , і пошук в інтернеті не дає нічого зрозумілого. На щастя, HotSpot практично повністю збирається з OpenJDK, і тому, як мінімум в теорії, ми можемо знайти відповіді на всі цікаві для нас питання прямо в исходниках. Чим ми і займемося!
 
 
Читати далі →

Що таке grep і з чим його їдять

    Ця замітка навіяна мелькали останнім часом на Хабре постами двох тематик — «цікаві команди unix» і «як я підбирав програміста». І описувані там команди, звичайно, місцями цікаві, але рідко практично корисні, а з'ясовується, що реально корисним інструментарієм ми користуватися і не вміємо.
Невеликий ліричний відступ:
Років три тому мене попросили провести співбесіду з претендентами на посаду unix-сисадміна. На двох найбільших на той момент фріланс-біржах на вакансію відгукнулися вісім претендентів, двоє з яких входили до ТОП-5 рейтингу цих бірж. Я ніколи не вимагаю від адмінів знання напам'ять конфігов і вважаю, що потрібний софт завжди освоїться, якщо є бажання читати, логіка в діях і вміння правильно користуватися інструментарієм системи. Тому для початку претендентам було дано дві задачки, приблизно такого плану:
 - Помістити завдання в крон, яка виконуватиметься в кожен парний годину і в 3 години;
 - Роздрукувати з файлу / var / run / dmesg.boot інформацію про процесор.
 
На мій подив ніхто з претендентів з обома питаннями не впорався. Двоє, в принципі, не знали про існування grep.
 
 image
 
Тому… Літо… П'ятниця… Перед шашликами трохи поговоримо про grep.
 
Читати далі →