четверг, 26 января 2012 г.

Linux оценка производительности и загрузки

1). sar | less

Linux 2.6.18-238.9.1.el5PAE (redhat)    26.01.2012

00:00:03          CPU     %user     %nice   %system   %iowait    %steal     %idle
11:10:01          all      5,07      0,00      2,52      0,32      0,00     92,09
11:20:01          all     13,05      0,00      2,91      0,60      0,00     83,44
11:30:01          all      7,39      0,00      2,81      0,49      0,00     89,31
11:40:01          all      8,81      0,00      2,86      0,83      0,00     87,50

2). iostat -m 

Linux 2.6.18-238.9.1.el5PAE (redhat)    26.01.2012

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           3,84    0,04    2,23    1,09    0,00   92,80

Device:            tps    MB_read/s    MB_wrtn/s    MB_read    MB_wrtn
cciss/c0d0       26,81         0,04         0,26     275736    1926453
cciss/c0d0p1     26,79         0,04         0,26     273628    1924436
cciss/c0d0p2      0,02         0,00         0,00       2107       2016

-m - показывает информацию в мегабайтах

3). mpstat -P ALL 2 5

Linux 2.6.18-238.9.1.el5PAE (redhat)    26.01.2012

12:03:04     CPU   %user   %nice    %sys %iowait    %irq   %soft  %steal   %idle    intr/s
12:03:06     all    1,75    0,00    2,25    0,25    0,00    0,00    0,00   95,76   1279,00
12:03:06       0    1,50    0,00    2,00    0,00    0,00    0,00    0,00   96,50   1000,50
12:03:06       1    2,50    0,00    4,00    0,00    0,00    0,00    0,00   93,50      0,00
12:03:06       2    1,01    0,00    1,52    0,00    0,00    0,00    0,00   97,47    244,50
12:03:06       3    1,49    0,00    1,49    1,00    0,00    0,00    0,00   96,02     34,00

-------------------------------(еще 4 отчета)---------------------------------------

Среднее:  CPU   %user   %nice    %sys %iowait    %irq   %soft  %steal   %idle    intr/s
Среднее:  all    6,72    0,00    2,85    0,27    0,02    0,05    0,00   90,08   1308,10
Среднее:    0    4,70    0,00    2,60    0,00    0,00    0,00    0,00   92,70   1000,70
Среднее:    1    6,99    0,00    4,10    0,00    0,00    0,00    0,00   88,91      0,00
Среднее:    2    3,20    0,00    1,90    0,80    0,00    0,20    0,00   93,89    263,30
Среднее:    3   11,98    0,00    2,79    0,30    0,10    0,00    0,00   84,83     44,10

 mpstat -P ALL 2 5 - показывает 5 отчетов статистики для всех процессоров с 2 секундным интервалов

4). dstat

смотрим только винчестер
dstat -d
-dsk/total-
 read  writ
  77k  540k
   0    24k

Смотрим кто лучше грузит процессор, веник, латенцию
dstat -c --top-cpu -d --top-bio --top-latency
----total-cpu-usage---- -most-expensive- -dsk/total- ----most-expensive---- --highest-total--
usr sys idl wai hiq siq|  cpu process   | read  writ|  block i/o process   | latency process 
  4   2  93   1   0   0|qrunner      0.5|  77k  540k|crond       287k  180k|khelper       153
  3   3  94   0   0   0|asterrc      0.2|   0     0 |havp          0   224k|ksoftirqd/3    14
 11   4  85   0   0   0|imapd        7.2|   0     0 |rmngr         0    32k|ksoftirqd/3    58
 10   5  84   0   0   1|rphost       6.2|   0  3224k|kjournald     0  1236k|ksoftirqd/1    51
 12   4  82   0   0   1|rphost       8.5|   0     0 |rmngr         0    96k|ksoftirqd/1    29
  6   3  91   0   0   0|rphost       1.8|   0     0 |postgres: l   0    16k|ksoftirqd/1    39

также можно и так
dstat --top-cpu-adv --top-latency --top-mem


Смотрим какой процесс лучше нагружает винчестер
dstat --top-bio
----most-expensive----
  block i/o process
crond       287k  180k
postgres: w   0    80k
kjournald     0  1128k
MailScanner   0    84k
MailScanner  28k 1552k
(squid)       0    12k
clamd         0  8192B


Проверка скорости винчестеров можно сделать используя команду
#sar -d 5 0
если у в поле %util значение > 70% хотя бы для одного винчестера, то он тормозит операции ввода-вывода и является причиной большой загрузки. Хотя система пока может и работать нормально

также полезна утилита htop которая показывает загрузку каждого ядра и какие процессы грузят ядра больше всего, как и утилита ntop, в которой можно посмотреть в реальном времени загрузку процессора, сети, дисков и другие вещи.

http://dag.wieers.com/home-made/dstat/ - здесь можно почитать

P.S. есть также неплохие утилиты htop, iotop

среда, 28 декабря 2011 г.

Systemd

просмотр статуса старта служб#systemctlтам же можно посмотреть какие неудачно стартанули и пофикстить проблемы, например из неудачно стартанувших
systemd-...-setup.service loaded ESC[1;31mfailed failed   ESC[0m     Recreate Volatile Files and Directories
Юниты, завершенные с ошибкой:
systemctl --failed
статус юнита
systemctl status fail2ban
статус всех юнитов (просмотр всех служб (стартуют автоматом или нет) )
systemctl list-unit-files 

если конкретную
systemctl list-unit-files | grep iptables
iptables.service                        enabled

Для сервисов можна использовать
systemstl start {stop,restart,enable,disable,kill(убить)} fail2ban
Например для включения и выключения службы
systemctl disable iptables
rm '/etc/systemd/system/basic.target.wants/iptables.service'
systemctl list-unit-files | grep iptables
iptables.service                        disabled
systemctl enable iptables
ln -s '/usr/lib/systemd/system/iptables.service' '/etc/systemd/system/basic.target.wants/iptables.service'
systemctl list-unit-files | grep iptables
iptables.service                        enabled
Переход между уровнями
systemstl isolate renlevel3.target
systemstl isolate renlevel5.target
просмотр процессов
ps xawf -eo pid,user,cgroup,args
PID USER     CGROUP                              COMMAND
 9611 root     cpu:/system/prefdm.service;name=systemd:/system/prefdm.service          |   |               \_ su -
 9615 root     cpu:/system/prefdm.service;name=systemd:/system/prefdm.service          |   |                   \_ -bash
 9239 vova     cpu:/system/prefdm.service;name=systemd:/system/prefdm.service          |   \_ /bin/bash
 9377 vova     cpu:/system/prefdm.service;name=systemd:/system/prefdm.service          |   |   \_ ssh ns
 9308 vova     cpu:/system/prefdm.service;name=systemd:/system/prefdm.service          |   \_ /bin/bash
 6962 vova     cpu:/system/prefdm.service;name=systemd:/system/prefdm.service          \_ thunar
 6964 vova     cpu:/system/prefdm.service;name=systemd:/system/prefdm.service          \_ conky
 6965 vova     cpu:/system/prefdm.service;name=systemd:/system/prefdm.service          \_ /opt/google/chrome/chrome
колоночка CGROUP как видим показывает имя контрольной группы , которое systemd присваивает каждому процессу
можно упростить себе работу назначив алиас на данну команду
alias psc='ps xawf -eo pid,user,cgroup,args' 
ту же инфу можно получить командой
#systemd-cgls
как видно например
 ├ auditd.service
  │ └ 1526 auditd
служба auditd.service порождает процесс 1526 auditd
Service-файлы для служб находятся в
ls /lib/systemd/system/*.service /etc/systemd/system/*.service
(аналог /etc/rc.d/init.d)
systemctl daemon-reload - при изменении конфигурации systemd нужно выполнить
systemctl is-enabled foo.service; echo $?
0 - включен, 1 - выключен
ls -la /lib/systemd/system/*.wants/systemd-update-utmp-runlevel.service
по уровнях (аналог chkconfig foobar –list)
Изменение уровня запуска (3 без Х, 5 - с Х)
rm /etc/systemd/system/default.target
ln -sf /lib/systemd/system/multi-user.target /etc/systemd/system/default.target
(3 runlevel по умолчанию)
ln -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target
(5 runlevel по умолчанию)
inittab не используется !
просмотреть текущий уровень запуска
systemctl list-units --type=target
как правильно убить службу
systemctl kill crond.service
systemctl kill -s SIGKILL crond.service (если дела плохи)
После ввода этой команды, служба cron будет жестоко убита вместе со всеми ее дочерними процессами, вне зависимости от того, сколько раз она форкалась, и как бы она ни пыталась сбежать из-под нашего контроля при помощи двойного форка или форкбомбардировки. В некоторый случах возникает необходимость отправить сигнал именно основному процессу службы. Например, используя SIGHUP, мы можем заставить демона перечитать файлы конфигурации. Разумеется, передавать HUP вспомогательным процессам в этом случае совершенно необязательно. Для решения подобной задачи неплохо подойдет и классический метод с pid-файлом, однако у systemd и на этот случай есть простое решение, избавляющее вас от необходимости искать нужный файл:
systemctl kill -s HUP --kill-who=main crond.service
После прочтения сказанного выше у вас может возникнуть вопрос: в чем разница между systemctl kill и systemctl stop? Отличие состоит в том, что kill просто
отправляет сигнал заданному процессу, в то время как stop действует по «официально» определенному методу, вызывая команду, определенную в параметре ExecStop
конфигурации службы. Обычно команды stop бывает вполне достаточно для остановки
службы, и к kill приходится прибегать только в крайних случаях, например, когда
служба «зависла» и не реагирует на команды.
Теперь systemd отвечает и за имя хоста, локаль, настройками клавиатуры и т.д.
Имя хоста:
hostnamestl set-hostname my_hostname
Локаль:
localectl set-locale LANG="ru_UA.UTF-8"
Клавиатура (как в иксах так и в локали)
localectl set-keymap ru
Часовой пояс:
timedatectl set-timezone Europe/Kiev
Автомонтирование любого несистемного раздела (в fstab) опцией:
/dev/sda7 /home ext4 noauto,x-systemd.automount 0 1
то есть раздел будет монтирован когда он понадобится (поскольку работает отложенное монтирование)
для LVM разделов есть сервис
systemctl enable lvm 
systemctl enable lvm-on-crypt 
Настройка питания (демон logind) можно сделать без acpid, pm-utils.
Пример - спящий режим после нажатия кнопки "Power"
HandlePowerKey=suspend (/etc/systemd/logind.conf)
параметры ignore,poweroff,reboot,halt(выключить),suspend(спящий режим),hibernate(глубокий сон),kexec(загрузка другого ядра). События HandleSuspendKey (кнопка спящего режима, по умолчанию suspend), HandleHibernateKey (кнопка "Глубокий сон", по умолчанию hibernate), HandleLidSwitch (закрытие крышки ноутбука, по умолчанию suspend).
Для запуска команд ухода в сон / пробуждения (закрытие видео проигрывателя, выгрузка несовместимых с режим сна прог и т.д.) используются скрипты из каталога /usr/lib/systemd/system-sleep/ - название неважно, но должны иметь 2 агрумента pre или post (сигнализирют засыпаем или пробуждаемся) и suspend или hibernate (режим сна). Пример шаблона
#!/bin/bash
case $1/$2 in
    pre/*)
        #commands
    ;;
    post/*)
        #commands
    ;;
esac
Если скриптов несколько их запуск будет одноименным.. Завершать работу системы и перевод ее в разные режимы
systemctl reboot {poweroff,halt,suspend,hibernate}
Набор команд при загрузке.2 способами. 1 - нужна запись, чтение, удаление файлов. Используется юнит tmpfiles (выполняется при старте системы и действует на основе конфигов /etc/tmpfiles.d/).
Пример - выполнить при загрузке команду "echo USBE > /proc/acpi/wakeup" отключающую пробуждение пк при подключение usb устройства, создаем файл /etc/tmpfiles.d/disable-usb-wake.conf
w /proc/acpi/wakeup - - - - USBE
если требуется запуск команд - создаем новый юнит типа сервис
vim /etc/systemd/system/rc-local.service
[Unit]
Description=/etc/rc.local compatibility
[Service]
Type=oneshot
ExecStart=команда или путь к скрипту
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
последняя строка говорит что он должен запускаться на уровне запуска 3 (multi-user.target), поэтому включать сервис на автозапуск не нужно.
Чтение журналов
journalctl
вывод логов команды
journalctl /usr/lib/systemd/systemd
устройства
journalctl /dev/sda
юнита
journalctl -u fail2ban
удобно для дебага скриптов сна/пробуждения
journalctl -u systemd-suspend
аналог tail -f /var/log/messages
journalctl -f

(источник http://wiki.rosalab.ru/index.php/Systemd, Исполин, каких немного (Краткий экскурс в теорию и практику systemd) (Хакер, 01/168/2013 — 108))

воскресенье, 18 декабря 2011 г.

Ремонт ПК (ИБП) особенности

1). Паять электролиты на метиринке паяльником паяльной станции наргертым до ~220-240 C. Конденсаторы лучше использовать с рабочей температурой 105 С, в крайнем случае 85 С, но не ниже.
2). ИБП
а). блок не запускается, транзисторы целые, микросхемы работают нормально.
- обрыв резистора 100 кОм в цепи базы одного из транзисторов
б). блок не запускается после замены транзисторов (высоковольтных)
- необходимо уменьшить сопротивление резистора в цепи базы с 100 до 75 кОм
в). БП на UC3842 не запускается, напряжение и сигналы норма. Генерация на задающем генераторе норма, обратные связи по току и напряжению заблокированы, на выводе питания нормальные скачки 17-9 В. Нет импульсов на выходе, замена микросхемы ничего не дала, резисторы в норме. Пила на выходе задающего генератора ниже на 0,2 В.
- неисправные кандер на 2700 пФ в задающей RC цепи
г). не запускает АТХ БП при нажатии на питание слышен кратковременный свист, на выходе 5В напряжение поднимается до 0,4 В и БП отключается. Stand By около 5 В.
- неисправные выпрямитель на выходе 12 В FEP16CT (пробой), можно заменить диодами КД213А или аналогичным.
д). JNC 400W
- высыхает кондер 22х50 возле радиатора силовых транзисторов и дежурного режима, по причине нагрева радиатора в дежурном режиме.
- вследствии высыхания предыдущего товарища может взорватся кандер 47х25 возле 5 В стабилизатора, также могут сгореть резисторы в обвьязке TL494.
э). SUNTEK PW-400ATXE постоянно влючен - не отключается (PS-ON имеет низки уровень)
- неисправные керамический кандер С29 (0,01 мкФ, желтый около IC7) - заменяем любым керамисечким 0,01-0,068 мкФ.
3). Западает кнопка питания
- протирка 10% раствором уксуса
источник (Практика ремонт, Маленькие хитрости (Андрей Кашкаров) - Железо 12/2011)

cisco storm контроль

Если вдруг на порте проблемы, для примера
5 minute input rate 103964000 bits/sec, 170339 packets/sec
5 minute output rate 13149000 bits/sec, 2626 packets/sec
  0 watchdog, 230622429 multicast, 2 pause input
то нужно порт зашейпить по мультикастам, броадкастам и юникастам
storm-control broadcast level bps 2m
storm-control multicast level bps 2m
storm-control unicast level bps 5m

суббота, 3 декабря 2011 г.

vps, vds - разница + и -

1). OPENVZ + WEBVZ (веб интерфейс для управления виртуальными машинами). Шаблоны операционок на официальном сайте.
2). HyperVM (lxcenter.org) веб интерфейс управления поддерживает OpenVZ и Xen.
3). linux-vserver + webpanel http://www.openvcp.org/
Краткая справка
Для создания VDS используются XEN, VirtualBox, VMWare и т.д..
Для создания  VPS для linux используется linux-vserver и openvz (также для других операционок).
+ VDS: не имеет значения ос внутри виртуалки, линук может использовать разные версии ядер для виртуальных систем.
- VDS: Большие потери проиводительности на операции IO (INPUT/OUTPUT), большее испльзование процессора и памяти сервисами, которые дублируют запущенные на серверной ос.
+ VPS: очень маленькая потеря приозводительности, только на изоляцию, запускаются только сервисы которые нужны.
- VPS: может использован только линукс и ядро только одной версии для всех систем в т.ч. серверной (серверной означает - той, на которой реализована виртуализация).

вторник, 15 ноября 2011 г.

Полезные команды консоли

1). Как просмотреть сетевые интерфейсы
lshw -class network
ясно дело без класа покажет все устройства
2). Стольбец превратить в строку где айпихи например разделены переносами
awk '{print $1}' /etc/hosts | paste -s -d ' '
3). трасировка порта или проверка его доступности
tcptraceroute -n 21.90.85.78 22
tcptraceroute mail.makeup.com.ua 22122
можно также так
traceroute -Picmp -M3 -m8 77.222.131.91
traceroute -Ptcp -p25 -M3 -m8 77.222.131.91
traceroute -f3 -Pudp -p53 176.9.121.68
paping www.google.com -p 80 -c 4
http://code.google.com/p/paping/
4). mtr
mtr -r -n 21.90.18.10 
5). размер папок текущей директории с глубиной 1 подпапки
du -xh --max-depth=1
6). использование xargs
find /var/www/memory/data/www/memory.net.ua/ -name '*.php' -print0 | xargs -0 chmod u+x
где
флаги find -print0 и xargs -0: это такая борьба с возможными пробелами в именах файлов. Такие файлы могут быть восприняты chown'ом как два разных. Первый флаг заставляет find выводить каждый найденный файл с нулём в конце (символ конца строки в Си), а второй флаг сообщает xargs что ему нужно отделять файлы друг от друга не по переводу строки, а по этому самому нулю, что гарантирует верную обработку даже самых хитрых имён файлов
7). вывод конфигов без коментов
| egrep -v "^(#|\s*$)"
grep -v "^#" файл | sed -e '/^$/d'
awk '$1!~"^(#|$)" {print}' /etc/squid/squid.conf
где
# комментарий
$ перевод строки
| или логическое
8). кто в локальной сети живет
nmap -e eth0 -sP 10.1.1.0/24
9). киляние сетевых сессий
tcpkill -i eth0 host 192.168.1.100 port 8080
lsof -iTCP@HostnameOrIPAddress:PortNumber а потом кильнуть по пиду
10). регулярки в grep
egrep -i '(shut|reboot)' messages
11). рекурсивный обход директорий с выполнением команд на всеми найденными файлами (если не нужно над всем используем ключи find name iname)
find / -exec ls -la '{}' \;
find / -exec egrep -i '(eval|base64_decode|gzuncompress|gzinflate|ob_start|str_rot13|create_function|headers_sent|preg_match|iframe)' '{}' \;
12). снифаем трафик (можно добавить -v -vv -vvv чтобы увеличить информативность)
tcpdump -i eth3 -nn -tttt udp and port 5060 -l | tee dump.log
13). кто слушает сокет
netstat -tunlp | grep 465
netstat -lnpt | grep master (по имени процесса - какие он порты слушает)
lsof -i :465
для UDP трафика
netstat -panu
14). работает ли процессор на полной частоте, если нет тогда что нужно сделать
[root@mail ~]# grep -E '^model name|^cpu MHz' /proc/cpuinfo
model name : Intel(R) Core(TM)2 Duo CPU     E7400  @ 2.80GHz
cpu MHz : 1596.000
model name : Intel(R) Core(TM)2 Duo CPU     E7400  @ 2.80GHz
cpu MHz : 1596.000
[root@mail ~]# for CPUFREQ in /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor; do [ -f $CPUFREQ ] || continue; echo -n performance > $CPUFREQ; done
[root@mail ~]# grep -E '^model name|^cpu MHz' /proc/cpuinfo
model name : Intel(R) Core(TM)2 Duo CPU     E7400  @ 2.80GHz
cpu MHz : 2793.000
model name : Intel(R) Core(TM)2 Duo CPU     E7400  @ 2.80GHz
cpu MHz : 2793.000
(http://www.experts-exchange.com/OS/Linux/Administration/A_3492-Avoiding-CPU-speed-scaling-in-modern-Linux-distributions-Running-CPU-at-full-speed-Tips.html)
# service cpuspeed stop
# chkconfig cpuspeed off
# pgrep -lf ondemand
1444 kondemand/0
1445 kondemand/1
# lsmod | grep ondemand
cpufreq_ondemand       42449  0
freq_table             38977  2 cpufreq_ondemand,acpi_cpufreq
# rmmod cpufreq_ondemand acpi_cpufreq freq_table
15). Разархивировать все zip файлы в каталогеfind ./ -type f -name "*.zip" -exec unzip -o {} \;
16). Переименование файликов скопом
for i in *.txt; do j=`echo $i | sed 's/Гоголь\ Николай\.\ //g'`; mv "$i" "$j"; done
где как видите мы заменяли Гоголь Николай. на пустое место
(пример из http://snipplr.com/view/2736/rename-multiple-files-in-bash-using-regular-expressions/)
17). tcpdump vlan (то есть слушаем трафик на теггированном интерфейсе)
tcpdump -i eth0 -e -n (видим все теггированные пакеты)
tcpdump -e -i eth2.7 (конкретного vlan)
tcpdump -e -i eth2.7 host 1.1.1.1 and port 110 (на конкретный хост и порт)
-X содержание пакета в 16-ричной форме (удобна для http протокола, где данные передаются в открытой форме)
-n - не резолвить ip в днс
-nn - предыдущий + номера портов
-c[n] - показать первые n пакетов
-s[n] - показать количество байт для пакета
-S - показывать абсолютные номера последовальности
-e - показывать заголовки ethernet-фреймов
-q - показывать меньше информации
-E - расшифровавывать ipsec трафик с помощью ключа
-v подробная информация (-vv, -vvv)
src - адрес источника пакета (dst - получателя)
port not 22 (не), детально - and, && (и); or, || (или); not, ! (не)
portrange 21-23 (диапазон портов)
> 32 and <=121 (тоже)
net 10.1.1.0/24 (сеть)
proto[expr:size], где proto - протокол, expr - смещение в байтах от начала заголовка пакета, size - необязательное поле, указывающее длину рассматриваемых данных (по умолчанию 1 байт)
tcpdump 'tcp[13]==2' (пакеты с установленным SYN флагом)
tcpdump 'tcp[tcpflags] & tcp-syn != 0' (то же самое)
Нахождение и сохранение видео потока
tcpdump -eflAi eth0 -s 0 -w - | strings | grep -ao "rtmp://.\+.flv" - ссылку кормим утилите rtmpdump (lkcl.net/rtmp) ./rtmpdump -r 'URL' -o file.flv
Примеры
ssh root@1.com tcpdump -w - 'port !22' | wireshark -k -i - (-w - запись дампа в стандартный вывод и перенаправили его на анализ wireshark)
ssh root@1.com "tcpdump -nn -i eth0 -w -" | snort -c /etc/snort/snort.conf -r - (тоже самое на анализ snort)
tcpdump -nnvv -r dump.cap tcp | grep -v "tcp sum ok" | wc -l (находим пакеты с неправильной контрольной суммой)
tcpdump -nn -v -i eth0 -s 1500 -c 1 'ether[20:2] == 0x2000' (ловим CDP пакеты)
tcpdump -i eth0 -vvv -s 1500 '((port 67 or port 68) and (udp[8:1] = 0x1))' (ловим DHCP пакеты)
tcpdump -i eth0 "tcp port pop3 and ip[40] = 85 and ip[41] = 83" -s 1500 -n (ловим POP3 аутентификацию)
(тоже хорошие примеры - http://wiki.dieg.info/doku.php/tcpdump#primery_ispolzovanija_tcpdump_and_or_except)
18). ngrep и мониторинг трафика http
ngrep -l -q -d eth2.7 "^GET |^POST" tcp and port 80 (GET и POST в рамкас tcp сессий)
ngrep -i 'game*|p0rn|adult' -W byline -d eth2.7 > 1.txt (выявление бездельников)
ngrep -i 'rcpt to|mail from' -d eth2.7 tcp port smtp (анализ smtp трафика)
19). проброс порта через ssh
ssh -f -N -L 3389:10.1.1.1:3389 ali@mali.kiev.ua
20). whois -h whois.ua 11.gov.ua
21). просмотр сетевых соединений
# iptraf
# iftop
22). просмотр работы с винчестером
# iptop
23). файл или страничка доступен по http (без поднятия веб-сервера)
while true ; do nc -l 80 < index.html ; done
24). повторяющиеся строки в файле (поиск)
sort /etc/sysctl.conf | uniq -d
25). дерево процессов
pstree -p
26). запись видео с экрана
ffmpeg -f  x11grab -s 1440x900 -r 15 -i :0.0 -vcodec qtrle /home/user/1.mov
-s разрешение
-r количество кадров
-i порядковый номер экрана иксов
https://code.google.com/p/qboard/wiki/CreatingScreencastsWithFfmpeg - скрипт для привязки к определенному окну
27). запуск Х приложений через ssh
ssh -X 10.1.1.2 firefox
(на удаленной машине в настройках sshd демона X11Forwarding yes)
28). тестируем apache
rpm -qf /usr/bin/ab
httpd-tools-2.2.15-29.el6.centos.x86_64
ab -c 50 -n 10000 URL_TO_THE_SITE
(https://wiki.appnexus.com/display/documentation/How+to+Apache+Stress+Test+With+ab+Tool - можно также почитать)
29). iptables вывод номеров линий и вставка после определенной линии
iptables -L INPUT -n --line-numbers
iptables -I INPUT {LINE_NUMBER}
соответсвенно линия с данным номером, которая была прежде опуститься ниже
30). dnstop -l 3 eth0 -i 8.8.8.8
где ip - собственно и есть айпиха интерфейса которую исключаем
с - дает нам увидеть какие запросы больше всего нагружают bind
если это какая то леваковая вирусная зона можно ей сделать
/etc/named/fake-zone
$TTL    86400
@       IN      SOA     localhost. root.localhost. (
                              1         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                          86400 )       ; Negative Cache TTL
@       IN      NS      localhost.
        IN      A       127.0.0.1
*       IN      A       127.0.0.1
/etc/named/master.fake-zones.conf
zone "192cq.com" { type master; file "/etc/bind/fake-zone"; allow-update { none; }; };
/etc/named/named.conf
view "inside" {
        include "/etc/named/master.fake-zones.conf";
};
31). whois 91.22.3.124 | awk -F':[ \t]+' 'tolower($1) ~ /^country$/ { print toupper($2) }'
узнаем с какой страны айпиха
32). http://computerlib.narod.ru/html/tcpipdump.htm
кто конектится на конкретный порт (можно конечно и tcpdump тоже самое сделать)
tethereal -i any port 80
33). Вылогинить рута с консоли
ps -dN | grep tty1 - если рут локально
ps -dN | grep pts/3 - если рут по сети
и киляем процес
34). синхронизация файлов (например почты после переключения на новый сервер, когда переключили днс и некоторое время почта ходит и туда и туда)
rsync -avgoPu /home/vmail new_server:/home/vmail --dry-run (-n = --dry-run - test mode, потому уже без ключа -n = --dry-run)
35). просмотр нагрузки на дисковую подсистему
iostat -x -d

Device:         rrqm/s   wrqm/s     r/s     w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
sdb               2,75    16,08   22,95    7,19  3252,53   168,18   113,48     0,70   23,11   2,13   6,43
sda               3,43    16,17   38,37    7,14  4267,38   168,52    97,48     0,09    2,06   2,07   9,44

интересна колонка %util - показывает в % нагрузку. 
36). вставка файла в начало другого файла
echo -e '0r /root/file\nw' | ed /root/panel/ng.log
37). выбрать из файла определенный диапазон линий
sed -n 1,10518p /root/acco.log > /root/acco.log_recover
38). кто держит директорию
lsof +D /var/www/html
/sbin/fuser -m /var/www/html

39). модель сервера
dmidecode | grep -A3 '^System Information' 

ubuntu 11.10 vpn autostart, а также как сделать шлюз для раздачи инета

Конфигурим оба езернета на тазике, а также впн, на инет интерфейсе. На интерфейсе, смотрящем в сторону ЛАН и который будеш ширинь инет выключаем ipv6 (есть глюк, когда интерфейс поднимается и падает и так без конца, поэтому и выключаем)
Называем сетевые подключения в т.ч. впн однословными названиями, что в скриптах было проще
создаем скрип который будет с задержкой 20с поднимать интерфейс расшаренный для других пк (задержка нужна для поднятия впн)
#vim /etc/network/if-up.d/eth0
#!/bin/sh
sleep 20
nmcli con up id wired2
где wired2 - имя интерфейса расшаренного для других пк в Network Manager
#chmod +x /etc/network/if-up.d/eth0
Также создадим скрипт для автоматического подйома впн
#vim /etc/network/if-up.d/vpn
#!/bin/bash
REQUIRED_CONNECTION_NAME="wired1"         # change singularity to your network connection name
VPN_CONNECTION_NAME="vpn1"                # change airvpn to your VPN connection name
activ_con=$(nmcli con status | grep "${REQUIRED_CONNECTION_NAME}")
activ_vpn=$(nmcli con status | grep "${VPN_CONNECTION_NAME}")
if [ "${activ_con}" -a ! "${activ_vpn}" ];
then
    nmcli con up id "${VPN_CONNECTION_NAME}"
fi
где wired1 - имя интерфейса подключенного к выходу в интернет в Network Manager, vpn - имя впн интерфейса в Network Manager
#chmod +x /etc/network/if-up.d/vpn
Теперь нужно изменять конфигурационный файл впн подлючения, поскольку пароли одного юзера другой в т.ч. рут не видит по умолчанию
#vim /etc/NetworkManager/system-connections/vpn1
меням с 1 на 0
[vpn]
....
password-flags=0
добавляем также секцию
[vpn-secrets]
password=your_password

перед секцией [ipv4], где your_password - пароль вашего юзера, использующегося для подключения впн

Также добавляем задачу восстановления впн, если вдруг подлючение упадет
*/1 * * * * /etc/network/if-up.d/vpn

Вот в принцыпе и все.