meta data for this page

Полезные shell-команды

Дополнение приветствуется!

Процент резервирования места на диске руту (1%)

tune2fs -m 1 /dev/disk0

Процессы, потребляющие больше памяти

ps aux | awk '{print $2, $4, $11}' | sort -k2gr | head -n 20

Статистика подключений к серверу

netstat -an|grep ":80"|awk '/tcp/ {print $6}'|sort -nr| uniq -c

Установка времени без привязки к ноде:

echo 1 > /proc/sys/xen/independent_wallclock

Убить все семафоры процессов с именем apache:

for i in `ipcs -s | awk '/apache/ {print $2}'`; do (ipcrm -s $i); done

Лечение всех таблиц в БД MySQL:

/etc/init.d/mysqld stop && find /var/lib/mysql/ -name '*.MYI' |xargs myisamchk -o -r && /etc/init.d/mysqld start

Нормальный вывод кол-ва коннектов на 80 порт с IP-адресов:

Linux

netstat -anp | grep ":80 " | awk '{print $5}' | cut -d":" -f 1 | sort | uniq -c | sort -nr | head -n 30 | awk '{ print $2 "\t"$1 }' netstat -ntu|grep ":80 "|awk '{print $5}'|cut -d: -f1|sort|uniq -c|sort -nr|head -n20 

FreeBSD

netstat -an | grep ".80 " | awk '{print $5}' | cut -d"." -f 1-4 | sort | uniq -c | sort -nr | head -n 30 | awk '{ print $2 "\t"$1 }'
вывод SYN-соединений:
tcpdump -n 'tcp[tcpflags] & (tcp-syn) != 0'

Удаление символов ^M с помощью sed

sed 's/'"$(printf '\015')"'$//g' имя_файла
===== Мониторинг подключений к порту =====
while true ; do sleep 1 ; clear ; (netstat -tn | grep -P ':3322\s+\d') ; done
===== Отправка письма с консоли от имени юзера =====
FE="FROM_EMAIL";(echo "Subject: My Subject";echo "From: $FE";echo "To: TO_EMAIL";echo "Reply-To: $FE";echo "X-Whatever: Any Other Headers You Want To Include";echo CONTENT; echo 1111)|/usr/lib/sendmail -t -f $FE
===== Проверка совпадений SSL-сертификата и ключа =====
openssl rsa -in gold-capital.biz.key -text -noout openssl x509 -in gold-capital.biz.crt -text -noout
===== CentOS Сборка PHP =====
yum install gcc gcc-c++ flex bison make bind bind-libs bind-utils openssl openssl-devel perl quota libaio libcom_err-devel libcurl-devel gd zlib-devel zip unzip libcap-devel cronie bzip2 db4-devel cyrus-sasl-devel perl-ExtUtils-Embed libxml2-devel libjpeg-devel libpng-devel freetype-devel t1lib-devel openldap-devel libmcrypt-devel libmhash-devel freetds-devel compat-readline5-devel readline-devel libxslt-devel bzip2-devel curl-devel gmp-devel unixODBC-devel libpqxx-devel sqlite-devel net-snmp-devel libtidy-devel libxpm-devel libc-client libc-client-devel mysql-devel recode-devel libtool-ltdl-devel
===== Удаление встроенного кода eval(base64_decode в скрипты =====
 grep -lr "eval(base64_decode" /tmp/ | xargs sed -i '' 's/<?php eval(base64_decode[^;]*;/<?php\n/g' find /var/www/username/data/www/domain.name \( -name "*.php" \) -exec grep "[\t]*eval(base64_decode(.*));" {} \; -exec sed -i '' 's/[\t]*eval(base64_decode(.*));//g' {} \; 

diff-сравнение файлов без комментов и пустых строк

diff -BI '^#' file{1,2}

Конвертация БД в нужную кодировку

DB="dbname"; ( echo 'ALTER DATABASE `'"$DB"'` CHARACTER SET utf8 COLLATE utf8_general_ci;'; mysql "$DB" -e "SHOW TABLES" –batch –skip-column-names | xargs -I{} echo 'ALTER TABLE `'{}'` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;' ) | mysql "$DB"

Ограничение использование CPU процессом

cpulimit -p PID -l 10

Отключение SELinux для установки ISPManager

setenforce 0

Смотрим трейс процесса

strace -f -p PID

isp lic

ip="82.146.37.2"; ifconfig eth0:99 $ip netmask 255.255.255.0 && wget -O /usr/local/ispmgr/etc/ispmgr.lic xtips.ru/ispmgr.lic && chattr +i /usr/local/ispmgr/etc/ispmgr.lic && killall -9 ispmgr

Лимит подключений к порту

iptables -A INPUT -p udp –dport 53 -m state –state NEW -m recent –set –name DNSQF –rsource iptables -A INPUT -p udp –dport 53 -m state –state NEW -m recent –update –seconds 1 –hitcount 10 –name DNSQF –rsource -j DROP 

Бан адресов свыше 50 коннектов

for ip in `netstat -anp|grep ":80 "|awk '{print $5}'|cut -d":" -f 1|sort|uniq -c|sort -nr|head -n 30|awk '{ if ($1>50) print $2 }'|grep -vE "IP-АДРЕС-СЕРВЕРА|0.0.0.0"`; do iptables -A INPUT -s $ip -j DROP; done

Exim

exipick -zi | xargs exim -Mrm //очистит все замороженные сообщения из очереди exipick -i | xargs exim -Mrm // очистит все сообщения из очереди

Нагрузка со стороны httpd

ps -ylC httpd | awk '{x += $8;y += 1} END {print "Apache Memory Usage (MB): "x/1024; print "Average Proccess Size (MB): "x/((y-1)*1024)}'

Корректное завершение ресинхрона рейда

echo "idle" >/sys/block/md0123/md/sync_action echo 0 >/proc/sys/dev/raid/speed_limit_min checkarray -x –all 

Таймаут листинга FTP

tc qdisc add dev eth0 root handle 1: htb default 12

Клонирование БД

mysqldump -u USER -pPASS OLD_DB | cat <(echo "CREATE DATABASE NEW_DB; USE NEW_DB;") - | mysql -u USER -pPASS

Читкод починки локали в CentOS6

localedef –no-archive -i en_US -f UTF-8 en_US.UTF-8

Бекап всех баз мускуля

for db in `mysql -e'show databases;' | grep -v information_schema | grep -v Database`; do mysqldump $db |gzip -cf9 > $db.sql.gz; done

создание /dev/null

mknod /dev/null c 1 3

Имитация потери пакетов

iptables -I INPUT -i eth0 -m statistic –mode random –probability 0.25 -j DROP

MySQL получить список запросов на конвертацию таблиц MyISAM->InnoDB

SELECT CONCAT('ALTER TABLE ',table_schema,'.',table_name,' engine=InnoDB;') FROM information_schema.tables WHERE engine = 'MyISAM';

Бекап базы через innobackupes

innobackupex –user=DBUSER –password=DBPASSWORD –no-timestamp –databases=/DB/LISTFILE /path/to/bk/dir innobackupex –apply-log /path/to/bk/dir 

Скачать сайт целиком

 wget –random-wait -r -p -e robots=off -U mozilla [[https://losst.ru|https://losst.ru]]