Yvision.kz
kk
Разное
Разное
399 773 постов41 подписчиков
Всяко-разно
0
05:55, 11 октября 2011

Маленькие хитрости Linux

Буду здесь собирать всяческие полезные штуки и "подводные камни", на которые наткнулся в процессе работы. Поскольку сам я, скорее, пользователь Linux, то многие вещи профессионалам покажутся очевидными. Не стоит за это меня казнить :) Я хочу всего лишь собрать для себя в одном месте шпаргалку. Итак.


1. Как остановить все экземпляры программы (по маске), если killall не помогает:
kill -9 `ps -ef | grep %programm_name% | grep -v grep | awk '{print $2}'`

2. Поиск информации в файлах (аналоги ORDER BY / GROUP BY в SQL):
cat access.log | sort | uniq -c | sort > access.1.log
(sort - сортирует, с ключем -r сортирует в обратном направлении; uniq -c - выполняет "группировку", удаляет дубликаты и пишет количество вхождений)

3. Не запускается последний скрипт в cron
Это связано с тем, что каждая строчка в crontab'е должна заканчиваться символом новой строки (т.е. последняя строчка должна быть пустой), что в свою очередь сделано для безопасности (чтобы исключить запуск битых команд, если вдруг файл записался не полностью)

4. Как увеличить счётчик в bash-скрипте:
i=0
i=`expr $i + 1`
Пробелы значат - нужно расставлять их именно в таком порядке. В конструкциях for, while и if, кстати, тоже.

5. Всякие разные команды анти-ддос:
tail -n 100000 nginx_access.log | grep "GET / HTTP" | cut -f 6 -d \" | sort | uniq -c | sort > uagent.log    Браузеры по кол-ву запросов на главную страницу
tail -n 100000 nginx_access.log | grep "GET / HTTP" | cut -f 1 -d " " | sort | uniq -c | sort > ip.log    IP по кол-ву запросов на главную страницу
tail -n 100000 nginx_error.log | grep prematurely | cut -f 22 -d " " | sort | uniq -c | sort > ip.log    IP по кол-ву прерванных запросов
cat nginx_access.log | cut -f 1 -d " " | uniq > ip.log    Уникальные IP

iptables -A INPUT -s 127.127.127.127 -p tcp -m tcp --dport 80 -j DROP    Добавить IP в iptables
iptables -A INPUT -p tcp --dport 80 -m iplimit --iplimit-above 10 -j REJECT    Ограничение кол-ва одновременных соединений (у нас не работает)
iptables -L --line-numbers    Посмотреть, что сейчас прописано в iptables
iptables -D INPUT %номер%    Удалить соответствующую строку из iptables

netstat -nt | grep ESTAB | wc -l    Общее количество текущих подключений к серверу
netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n    Посмотреть количество текущих соединений с каждого IP

0
388
1