<<< Headline | Index | http | bash | basics | x11 | net | vpn | humor | sles | cXX | php | db | perl | soft | unsorted | hw | ppp | tips | linux | fbsd | mail
[Timeline] [View Photos] [rtfm] [Search] [Index by Title] [Index by Date]
tips => sysadmin: == post:tips/posts/sysadmin

smbmount
/sbin/mount.cifs //10.10.106.2/ku /mnt/disk/ -o user=123,iocharset=utf8,username=USER,password=PASSS
mount -t smbfs //10.10.106.2/ku /mnt/disk/ -o iocharset=koi8-r,codepage=cp866,username=USER,password=PASS

Rdesktop
# rdesktop -u USER -p PASSWD -g 1024x768 -a 8 IP_ADDR

 Изменить скорость сетевой карты
root@max9 ~ # ethtool -s eth0 speed 100 duplex full
root@max9 ~ # mii-tool
eth0: negotiated 100baseTx-FD, link ok
eth1: 100 Mbit, full duplex, no link

TX checksumming on/off
ethtool -K eth0 tx off

Verify all values
ethtool -k eth0

 Tar via SSH
[USER@pc-7087 ~]$ ssh HOST "tar -zcf - dbdump.* DIR1/ DIR2/ DIR2/" |cat - > DIRS.$(date +%Y-%m-%d).tgz

 Rar and Unrar
root@monoid:/opt/vmware> rar a -ep2 -ow -y -v100m -r -s EngNode.rar EngNode/
root@monoid:/opt/vmware> rar x -ep1 -y asp.part00001.rar

 монтировать файловую систему из образа
FreeBSD: mdconfig -a -t vnode -f /tmp/bootable.iso -u 0

 использование патча
[rechosen@localhost ~]$ patch -p0 -i patchfile.patch

 сборка пакета из src в Linux
cd /usr/src/linux/SPECS
rpm -Uhv /dir/package.src.rpm
rpmbuild -ba --target=i386-pc-linux package.spec 

 LDAP
ldapsearch -H ldaps://ldap_server -D "uid=pupkin,ou=users,o=vega" -W -b "uid=pupkin,ou=users,o=vega" -d 7
 декодировать открытый пароль
perl -e 'use MIME::Base64; print decode_base64( $ARGV[0])."\n";' $(ldapsearch -H ldaps://ldap_server -D 'uid=<login>,ou=users,o=vega' -b 'uid=pupkin,ou=virtual,ou=users,o=vega' -w <password> | grep userPassword | awk '{print $2}')

 xauth
---------------------------------
#!/bin/bash

export DISPLAY=:0.0
xauth -f /home/lev/.Xauthority extract - $DISPLAY | xauth merge - 
xhost +local:notes
xhost +local:lev
---------------------------------

 FreeBSD пакеты:
 Просмотр пакета по файлу
[root@be93 ~]# pkg_info -W /usr/local/lib/perl5/site_perl/5.8.8/Test/Harness.pm
/usr/local/lib/perl5/site_perl/5.8.8/Test/Harness.pm was installed by package p5-Test-Harness-3.09
 список файлов пакета
[root@be93 ~]# pkg_info -L p5-Test-Harness-3.09
 поиск пакетов
[root@be93 ~]# pkg_info |grep p5-Test-Harness-3.09

 rsync
rsync -avze "ssh -i /usr/home/$USER/ds371_id_rsa" --rsync-path='sudo rsync' /v/18/89/v/domains/ $user@$host:/home/v/9/98/9881/domains/ --progress
rsync -avzHle "ssh -p 2222" --exclude \.svn* --delete /home/lev/svn/svn.domain.com/configs/ lev@home:/mnt/shara1/upload/svn/svn.domain1.com/configs/
rsync -avzHlp --delete --exclude '\.svn*' /home/bob/1/ /mnt/sdb1/1/

 FreeBSD: Увеличиваем кол-во сокетов
[root@be86 ~]# sysctl -w kern.ipc.maxsockets=65000
kern.ipc.maxsockets: 45000 -> 65000

Аналог cat /proc/interrupts в Fbsd:
vmstat -i
interrupt                          total       rate
irq1: atkbd0                           5          0
irq4: sio0                             3          0
irq16: uhci0                    39791718         95
irq24: mpt0                     39552037         94
irq54: em0                      84579572        202
cpu0: timer                    833624989       2000
cpu2: timer                    833610207       2000
cpu1: timer                    833610202       2000
cpu3: timer                    833610205       2000
Total                         3498378938       8393

Linux: cat /proc/modules
Linux:/sbin/lsmod
Fbsd: kldstat -m <module>

linux:insmod </usr/lib/module>
fbsd:kldload pf

linux:rmmod </usr/lib/module>
fbsd:kldunload pf

 Добавление нового члена группы с использованием pw(8)
pw groupmod teamtwo -m db
pw groupshow teamtwo
teamtwo:*:1100:jru,db

 Использование id(1) для определения принадлежности к группам
% id jru
uid=1001(jru) gid=1001(jru) groups=1001(jru), 1100(teamtwo)

 Модули в fbsd

По умолчанию, при построении ядра, все модули ядра так же будут пересобраны. Если вы хотите обновить ядро быстрее или построить только опре
делённые модули, то вам нужно отредактировать файл /etc/make.conf перед началом процесса сборки ядра:

MODULES_OVERRIDE = linux acpi sound/sound sound/driver/ds1 ntfs

Эта переменная устанавливает список модулей, которые нужно построить вместо построения всех модулей. За другими переменными, которые вы мож
ете посчитать полезными в процессе сборки ядра, обращайтесь к странице справочника make.conf(5).

 iptables
#отключить клиента:
 1032  iptables -I FORWARD -s 194.84.184.85 -j REJECT
 1033  iptables -L -n -v

 звуковая не работает
modprobe sb
mpg123 -f 4800 -Z -4 -m /guest/music/* &
 завести юзера
mount / -o remount,rw&&cat /etc/passwd|sed 's/usachaa/lev/g' > /tmp/1&&cat /etc/shadow|sed 's/usachaa/lev/g' > /tmp/2&&mv -f /tmp/1 /etc/passwd&&mv -f /tmp/2 /etc/shadow&&mv -f /home/usachaa/ /home/lev&&chown lev /home/lev -R&&passwd lev 
 записать cd-rom
mkisofs -V "music" -D -l -L -N -R -J -v -o 1.iso /guest/music/Electronix/
dd if=1.iso| ssh lev@wax "cdrecord -v -dev=0,1,0 -speed=4 -"
 записать мультисессионный диск
Запись первой сессии 
        создаем iso первой сессии:
        mkisofs -V "volume_ID" -D -l -L -N -R -J -v -o 1.iso dir1
        cdrecord -v speed=4 -dev=0,0,0 -multi 1.iso

 Записываем последующие сессии:
        Получаем информацию о предыдущей сессии (для -C в mkisofs):
        cdrecord -msinfo -dev=0,0,0
        Создаем вторую директорию dir2 как dir1/dir2.
        Создаем образ второй сессии:
        mkisofs -M /dev/scd1 -C start_rec,end_rec -D -l -L -N -R -J -v -o cdrom.iso dir1
        Записываем на CD вторую сессию:
        cdrecord -v speed=4 dev=0,0,0 -multi 2.iso

 X-WINDOW

root@daemon>xhost +wax
lev@wax>export DISPLAY=wax:0

 nmap
nmap -sX -p 22,53,110,143,4564 128.210.*.1-127

 netcat
/usr/home/bug/dst/netcat/nc -l -p 36864 -vv

 команда route (LINUX)
root@relay:/home/lev>/sbin/route -n
root@relay:/home/lev>/sbin/route del default gw 195.151.30.1
 быстро поменять маршрут
/sbin/route del default gw 212.164.203.1;/sbin/route add default gw 195.151.30.1

 перемонтировать диск в режиме rw
mount -o remount,rw /

 смонтировать диск с ntfs
mount /dev/sda4 /mnt/disk/ -o nls=cp1251

 ping большими пакетами
ping -s 65000 dial-up2.victim.ru

 PostgreSQL
pg_dump -da radius -U radius|grep uki|grep "2003-03\|2003-04" > radius_dump
psql -h squish.x999.com -d radius -U radius -f radius_dump
 накатить базу из файла
psql -hpanda  -f /cache.log/taper/20030527 custdata
psql -hpanda  -f /tmp/20030526 squiddata

 заливка репозитория
wget -m -r -l5 ftp://ftp.asplinux.ru/pub/i386/updates/7.3/

 MySQL
mysql -u USER -h HOST BAZA -pbla-bla-bla
 заливка файла
cat files/catalog.txt|awk '{printf ("insert into lab_catalog(name) values\(-nnn-%s-nnn-\);\n",$0);}'|sed 's/\"/\\"/g;s/-nnn-/"/g'|mysql -u USER -h HOST BAZA -pbla-bla-bla
 создать табличку
create table lev_dir (did int NOT NULL PRIMARY KEY auto_increment,dir varchar(255) NOT NULL);
create table lev_timeline (id int NOT NULL PRIMARY KEY auto_increment,post varchar(255) NOT NULL, time timestamp,description blob NULL);
 удалить таблицу
drop table lev_dir;

 procmail
#procmail настройка на relay
cat /home/lev/.qmail
| /usr/local/qmail/bin/preline /usr/bin/procmail $HOME/.procmail
cat /home/lev/.procmail
#LOGFILE=$HOME/procmail.log
VERBOSE=on
SHELL=/bin/bash
NEWSENDER=root@x999.com
DTLINE=""
MAILDIR=$HOME/Maildir/
SENDMAIL="/usr/local/qmail/bin/qmail-inject -f#@[]"
DEFAULT=$HOME/Maildir/

:0 HB
{
:0 HB
* name.*="?.*(com|lnk|pif|exe|bat|dll|scr|vbs|mht|worms\.zip)"?$
{
:0 c
    |(/usr/bin/formail -r -i "From: antivirus filter - msg was
virus-suspicious " -A "X-Loop: antivirus"; cat
virus-message.msg) | $SENDMAIL
:0 h
/dev/null
}

:0 HB
* ^begin .* .*(com|lnk|pif|exe|bat|dll|scr|vbs|mht|worms\.zip)
{
:0 c
    |(/usr/bin/formail -r -i "From: antivirus filter - msg was
virus-suspicious " -A "X-Loop: antivirus"; cat
virus-message.msg) | $SENDMAIL
:0 h
/dev/null
}
}
:0 H
* ^To.*nobody@card.ru
/dev/null
:0 H
* ^To.*web@card.ru
/dev/null
:0 H
* ^From.*microsoft.com
/dev/null
:0 H
* ^From.*(.jp|.be|.com)
/dev/null

EZMLM
ezmlm-make -emlrdns /mail/f1/poivt /mail/f1/.qmail-poivt f1-poivt x999.com создать рассылку
ezmlm-sub /mail/f1/poivt/mod innar@x999.com завести модератора
ezmlm-sub /v/6/67/6780/domains/x99.ru/adm korlov@x99.ru
ezmlm-sub /mail/f1/poivt/ innar@x999.com завести адрес в список рассылки
ezmlm-unsub /v/6/67/6780/domains/x99.ru/all adegtyarev@x99.ru
for i in `cat /etc/passwd|grep 'ПО и ВТ'|cut -d: -f 1`;do /usr/bin/ezmlm-sub /mail/f1/poivt/ $i@x999.com; done
ezmlm-list /mail/f1/poivt
ezmlm-list /v/6/67/6780/domains/x99.ru/all | egrep "(adegtyarev|alexey|vvatlin|dkirhlarov|alukyanov|alubomirskaya|akriventsov|tizhbu
latov)"

 user passwd
vim /etc/master.passwd
pwd_mkdb -s 100 /etc/master.passwd

 заведение пользователя в почте
vdominfo x99.ru
cd /v/6/67/6780/domains/x99.ru
vuserinfo korlov@x99.ru
ezmlm-sub /v/6/67/6780/domains/x99.ru/adm korlov@x99.ru
vsetuserquota alubomirskaya@x99.ru 399715200S
vuserinfo alubomirskaya@x99.ru

 удаление пользователя в почте
vdeluser alukyanov@x99.ru

 подписка на список рассылки
echo "&john@x99.ru" >> /v/6/67/6780/domains/x99.ru/.qmail-bill-report 


 qmail
# mail queue
/usr/local/etc/rc.d/51qmail-mx.sh doqueue
/usr/local/qmail-mx/bin/qmail-qstat
/usr/local/qmail-mx/bin/qmail-qread

 mail logs

tail -F /opt/logs/qmail-mx/qmail-send/current | tai64nlocal 

 просмотр сообщения в очереди
/usr/local/qmail/bin/qmail-qread|less
 просмотр тела сообщения
less /usr/local/qmail/queue/mess/*/48468
 удаление сообщения из очереди
/usr/local/etc/rc.d/10qmail.sh stop
/usr/local/qmail/bin/qmail-remove -s 255 -q /usr/local/qmail/queue/ -p vilar-tours -d
/usr/local/qmail/bin/queue-fix /usr/local/qmail/queue/
/usr/local/etc/rc.d/10qmail.sh start

 NCP
ncpmount -S mayak -A mayaknw.x999.com -U byg -u byg -y koi8-r -p cp866 nw
ncpmount -A mayaknw.x999.com -f 400 -d 700 -p cp866 -y koi8-r ~/ncp -U kotofey

 PROC
cat /proc/loadavg 
cat /proc/uptime 
cat /proc/interrupts 


VIMkeys

      ^ - начало строки, $ - конец строки, w - начало след слова, e - конец слова
      gg - начало файла, G - конец файла, Ctrl-g - информация
      <NN>G перейти на строку NN, <NN>d<^,w,e,$,d> - удаление
      R,r - замена, I,i - вставка, c<^,w,e,$> - замена в режиме вставки
      % - поиск парных скобок, o,O - создать пустую строку под,над курсором
      a,A - append - за курсором, строкой.
      поиск-замена
      :s/old/new - первое вхождение в строке
      :s/old/new/g - все вхождения в строке
      :#,#s/old/new/g - все вхождения между строками
      :%s/old/new/g - все вхождения в файле
      :%s/old/new/gc - с подтверждением каждой замены
      :!<внешняя команда>,
      :#,# w <имя файла> - записать в файл фрагмент
      :r FILENAME - считать с диска файл

      Автодополнение - CTRL+n, CTRL+p

      Свернуть текст (подробней см. :help zf)
      zf12 - свернуть 13 строк, начиная со строки под курсором.
      12zf - свернуть 13 строк, начиная со строки под курсором.
      :0,fo[ld] - свернуть все от начала файла до текущей позиции курсора
      Развернуть текст - zo

      Показать все доступные опции - :set all

Многооконный режим редактирования файлов в Vim

Открытие двух или трех файлов в разных окнах vim

      С горизонтальной разбивкой окон на экране:
         vim -o /etc/passwd /etc/hosts
         vim -o /etc/passwd -o /etc/group /etc/hosts

      С вертикальной разбивкой окон на экране:
         vim -O /etc/passwd /etc/hosts
         vim -O /etc/passwd -O /etc/group /etc/hosts

      Наглядный просмотр отличий нескольких файлов
         vim -d файл1 файл2
         vim -d файл1 -d файл2 файл3

      Команды переключения между окнами:
      "CTRL-w w" - быстрое переключение на следующее окно
      "CTRL-w влево" - активация левого окна
      "CTRL-w вправо" - активация правого окна
      "CTRL-w вверх" - активация верхнего окна
      "CTRL-w вниз" - активация нижнего окна
      "CTRL-w n" - создать новое окно (":new файл" - открыть заданный файл)
      "CTRL-w q" - закрыть текущее окно 
         (":qall" - закрыть все окна разом, ":qall!" - без сохранения, ":write" - записать данные во всех  окнах)
      "CTRL-w s" - разбить текущее окно на 2 части для синхронного редактирования разных частей
         (в каждом окне будет содержимое одного и того же файла).
      "CTRL-w +", "CTRL-w -" - увеличение или уменьшение текущего размера окна
      "ESC 5 CTRL-w -", "ESC 5 CTRL-w +" - изменение размера сразу на 5 строк/столбцов
      "CTRL-w h" - переместить окно влево
      "CTRL-w j" - переместить окно ниже
      "CTRL-w k" - переместить окно выше
      "CTRL-w l" - переместить окно вправо
      "CTRL-w t" - переместить окно на самый верх
      "CTRL-w b" - переместить окно в самый низ

 Табы

      vim -p [filelist] - Открыть файлы в табах(вкладках).
      :tabnew [filename] OR :tabe [filename] - открыть файл в новом табе(вкладке).
      :tabnext/tabprev/tablast/tabfirst -Перемещение между вкладками.

См. также http://boombick.org/blog/posts/84

 SED

      Напечатать строки в которые паттерн входит: w | sed -n '/aabp/p'
      Напечатать строки в которые паттерн не входит: w | sed -n '/aabp/!p'
      Напечатать 5 первых строк: w | sed -n '1,5p'
      Напечатать все кроме первых пяти строк: w | sed -n '1,5!p'
      Удалить первую и последнюю строки: w | sed -e '1d' -e '$d'
      Вывести первую и последнюю строки:  w | sed -n -e '1p' -e '$p'
      Удалить из потока строки из паттерна: w | sed '/aabp/d'
      Оставить в потоке строки из паттерна: w | sed '/aabp/!d'
      Добавить после строки с паттерном: w | sed '/aabp/aдополнительная строка'
      Заменить строку с паттерном: w | sed '/aabp/cстрока на замену'
      Вставить перед строкой с паттерном: w | sed '/aabp/iдополнительная строка'

 AWK

 AWK - Суммирование по полям

      $ cat testawk
      pole1 12
      pole2 12
      pole1 10
      pole2 90
      $ cat testawk | awk '{sum[$1] +=$2} END {for(i in sum) {print i, sum[i]}}'
      pole1 22
      pole2 102
      $ cat testawk | awk '{sum[$1] +=$2; sum1 += $2 } END {for(i in sum) {print i, sum[i]} {print "Итого:", sum1}}'
      pole1 22
      pole2 102
      Итого: 124
      $ cat testawk | awk '{sum[$1] +=$2} END {for(i in sum) {print i, sum[i]; sum1 +=sum[i]} {print "Итого:", sum1}}'

 Суммируем с помощью awk

      ls -la *.dat | awk '{SUM+=$5} END {print SUM}'
 Дополнительные команды
cat file|awk '{if($1~/^[12]/) {src[$1]=src[$1]+$3;dst[$2]=dst[$2]+$3}}END{for(i in src) print i","src[i] > "src.list.pks";for(i in dst) print i","dst[i] > "dst.list.pks"}'


 MySQL

 Вычисление размера таблиц MySQL

      use information_schema;
      SELECT concat(table_schema,'.',table_name),concat(round(table_rows/1000000,2),'M') rows,
      concat(round(data_length/(1024*1024*1024),2),'G') DATA,
      concat(round(index_length/(1024*1024*1024),2),'G') idx,
      concat(round((data_length+index_length)/(1024*1024*1024),2),'G') total_size,
      round(index_length/data_length,2) idxfrac
      FROM TABLES ORDER BY data_length+index_length DESC LIMIT 10;

 Узнать не разъехалась ли реплика mysql

      mysql> show slave status; на слейве
      mysql> show master status; на мастере

      проверяем цифры и файлы - цифры не должны сильно расходиться если слейв встал надо сказать: start slave; 

 Если mysql уходит в своп

    * В my.cnf key_buffer - уменьшить, query_cache_size - увеличить

      анализ: mysqladmin  ext | grep -i cache параметр Qcache_lowmem_prunes - если растет увеличиваем query_cache_size 

 Чекалка больших баз myisam (MySQL)

      myisamchk --silent --force --fast --update-state --key_buffer_size=64M --sort_buffer_size=64M \
      --read_buffer_size=1M --write_buffer_size=1M *.MYI

 SSH

 Openssh, директива ProxyCommand

ssh-клиент openssh позволяет в настройках указывать директиву ProxyCommand, описывающую как можно получить канал для связи с удаленным концом соединения. Например

      ~$ cat .ssh/config
      Host far-far-away
         ProxyCommand ssh -q -A -X my-jumphost 'nc -w1 final-target 22'

    * Такой сниппет заставит по команде ssh far-far-away клиента зайти на хост my-jumphost и выполнить там команду nc -w1 final-target 22, которая организует pipe до 22 порта хоста final-target. Этот канал и будет использоваться как канал связи. Т.е. мы избавляемся от двойного ssh и попадаем куда надо за одну команду.

      Ссылки: http://blog.ganneff.de/blog/2007/12/15#ssh_jumphost, http://zulu.in.ua/ssh-jumphost/ru/#more-148 

 SSH-тунель

      ssh -2 -4 -N -f -L 6033:otherhostname:3306 user@hostname
      % ssh -2 -N -f -L 5023:localhost:23 user@foo.example.com
      % ssh -2 -N -f -L 5025:localhost:25 user@mailserver.example.com
      user@mailserver.example.com's password: *****
      % telnet localhost 5025
      Trying 127.0.0.1...
      Connected to localhost.
      Escape character is '^]'.
      220 mailserver.example.com ESMTP

-f Указывает ssh запускаться в фоновом режиме.
-L Означает локальный туннель в стиле localport:remotehost:remoteport.
user@foo.example.com Удаленный сервер SSH.

 Для автовнесения хостов в known_hosts

      ssh -o "StrictHostKeyChecking no" 

 Поменять репозиторий при установке пакетов(FreeBSD)

      export PACKAGEROOT=http://user:pass@rep.local
      pkg_add -r package

 Посмотреть какие процессы грузят диск.(FreeBSD)

      ps auxwwww -O inblk,oublk | more
      top -mio -o total

 Посмотреть инфу по определенному процессу

      ps -U postmaster -mc -o command,pmem,pcpu
      LINUX: ps --pid=3013 uw --cols=900

 Сгенерировать SSL сертификат для тестирования

http://httpd.apache.org/docs/2.0/ssl/ssl_faq.html#selfcert

      openssl req -new -x509 -nodes -out server.crt -keyout server.key
 просмотр сертификата
openssl x509 -in /usr/home/john/.ssl/cacert.pem -noout -text

 Проверка телнетом smtp

      telnet mx.domain.tld 25

      HELO dgfsdfg
      MAIL FROM: hgf@bar.ru
      RCPT TO: kjhk@mail.ru
      DATA
      тело письма
      .
      QUIT    

 SHELL

 Итеративный цикл в sh (FreeBSD)

      for i in `jot 14 2 15`; do echo $i; done

 Итеративный цикл в sh (Linux)

      for i in `seq 4 12`; do echo $i; done

 Итеративный цикл в bash

      for i in {1..15}; do echo $i; done
      for ((i=1;i<12;i++)) do echo $i; done

 Как послать письмо с аттачем из shell

      $ metasend -b -s "$SUBJECT" -f $TXTFILE -m text/plain -e none -n \
               -f $ATTFILE -m application/octet-stream -e base64 -t $MAILTO

      $ mpack -s "$SUBJECT" -c application/octet-stream $ATTFILE $MAILTO
       
      $ mutt -a $ATTFILE -s "$SUBJECT" $MAILTO < $TXTFILE

 CISCO

 Посмотреть роутинг на кошке (Cisco)

      rsh cisco-host sh ip route 12.1.23.5

 Посмотреть статистику по порту (Cisco)

      rsh cisco-host sh int Gi3/10

 Посмотреть настройки порта (Cisco)

      rsh cisco-host sh running int Gi3/10

 Посмотреть статус (Cisco)

      rsh cisco-host sh int status

 Посмотреть соответствие мак-адресов и ip-адресов (Cisco)

      rsh cisco-host sh ip arp

 Настройка сетевых интерфейсов (FreeBSD)

      /etc/start_if.$1, где $1 - имя сетевого интерфейса - это добавочный файл настроек, который вызывается из /etc/network.subr - практически нигде не задокументирован.

      === cut /etc/network.subr ===
      ifscript_up()
      {
              if [ -r /etc/start_if.$1 ]; then
                      . /etc/start_if.$1
                      return 0
              fi
              return 1
      }

 Передернуть named

      rndc reload
      LINUX: killall -1 named

 Информация о файловой системе. (FreeBSD)

    * dumpfs - информация о файловой системе. (FreeBSD) 

 Статистика загрузки дисков в gmirror. (FreeBSD)

    * gstat - статистика загрузки дисков в gmirror. (FreeBSD) 

 Полноэкранный вывод содержимого с периодичностью в n сек. (Linux)

      watch -n1 cat /proc/meminfo

 Поставить задание на выполнение в определенное время

      echo "sutdown -p now " | at -t 10140100
      echo "ls -la / | mail mypostbox@mydomain.tld" | at 1am Oct 14

 HTTP

 Проверка HTTP телнетом
 
      telnet www.mail.ru 80
      Trying 194.67.57.226...
      Connected to www.mail.ru.
      Escape character is '^]'.
      GET http://www.mail.ru HTTP/1.0

          o Enter жать два раза 

 Проверка HTTP

      printf "GET / HTTP/1.0\r\n\r\n" | netcat ya.ru 80
      printf "HEAD / HTTP/1.0\r\n\r\n" | netcat ya.ru 80

      HEAD ya.ru
      GET ya.ru

      lwp-request -m GET ya.ru
      lwp-request -m HEAD ya.ru

 HTTP коды

 Ребилд паролей (FreeBSD)

      pwd_mkdb -p -s 128 /etc/master.passwd

 Чтобы проверить валидность ssl ключа и сетификата
 нужно выполнить следующие команды:

      openssl x509 -noout -text -in server.crt
      openssl rsa -noout -text -in server.key

      У валидного ключа и сетификата должны совпадать Public Modulus и Exponent. Так же стоит обратить внимание на дату валидности сертификата. 

 Проверить целостность RPM у VPS (Virtuozzo)

      /usr/share/vzpkgtools/vzrpm/bin/rpm --root=/vz/root/3042 --veid 3042 -Va | egrep '^..5|missing'

 Размер баз данных в postgresql

      echo "select pg_size_pretty(pg_database_size('template1'));" | sudo -u pgsql psql template1

 Список баз данных в postgresql

   echo "\encoding KOI8-R\l" | sudo -u pgsql psql template1

 Использование nc

      хост-приемник - $ nc -l 2222 > otrs.data.20070712.sql
      хост-источник - $ nc dst-host 2222 < otrs.data.20070712.sql

 Проброс портов с помощью nc

 В inetd.conf прописать

 FreeBSD:      127.0.0.1:5000 stream tcp nowait nobody /usr/bin/nc nc -w 20 192.168.1.10 80
 Linux:      127.0.0.1:5000 stream tcp nowait nobody /usr/sbin/tcpd /bin/nc -w 20 192.168.24.203 22
 Посмотреть кто жрет шаред мемори
      ipcs -a
 Посмотреть кто использует диск
      ps -axo inblk,outblk,command|sort -n -k1
 Посмотреть кто грузит процессор
      ps -axo pcpu,command|sort -n -k1
      LINUX: ps -eo user,pcpu,pid,cmd | sort -r -k2 | head -6
      FREEBSD: ps -eo user,pcpu,pid,command | sort -r -k2 | head -6
 Заменяем виндовый символ перевода строки на юниксовый:
      perl -pi -e 's/\r\n/\n/'
      cat file|tr -d '\r\n'
 Проверить работу сетевых интерфейсов (FreeBSD)
      netstat -ni (колонка Ierrs, Oerrs)
      netstat -Lan - посмотреть очередь обработки сетевых запросов
      sockstat - посмотреть кто из программ держит порт
      ifstat - статистика загрузки интерфейса или netstat -w 1 -d
 Посмотреть железо (FreeBSD)
      dmidecode
      pciconf -l -v
 Посмотреть какой сокет какая программа держит (Linux)
      netstat -pvlA inet
      lsof -i -U
 Верификация пароля
      USERNAME=username; PASSWORDOFUSER=passwordofuser; openssl passwd -1 -salt `sudo cat /etc/master.passwd | grep $USERNAME | cut -f 3 -d '$'`  $PASSWORDOFUSER
 Сделать подсветку в ldapvi
      :set ft=ldif
 hping
      hping -p 80 -S -c 25  amazon.com
 Статистика интерфейса(linux)
    * bmon -p eth0.100 
 Сетевая загрузка(FreeBSD)
      systat -ifstat 1
      systat -tcp 1
      systat -ip 1
 Активизировать ipfw
      kldload ipfw && ipfw add 32000 allow ip from any to any

 Наиболее частые команды управления exim

    * Количество сообщений в очереди: exim -bpc
    * Просмотр сообщений в очереди:
          o всего: exim -bp
          o недоставленных: exim -bpu
          o табличный вариант: exim -bp |exiqsumm 
    * Просмотр конкретного сообщения по ID:
          o лог сообщения: exim -Mvl message_id
          o тело сообщения: exim -Mvb message_id
          o заголовки: exim -Mvh message_id 
    * Форсировать процессинг очереди: exim -qff
    * Форсировать доставку конкретного сообщения: exim -M message_id
    * Удалить сообщение из очереди
          o без баунса: exim -Mrm message_id
          o с баунсом: exim -Mg message_id 
    * Интересная статистика по работе exim: eximstats -nr /var/log/exim/mainlog 

SCREEN
     ctrl-a S - добавить еще одно горизонтальное окно
      ctrl-a TAB - переключится в следующее окно
 Packet Filter (pf, FreeBSD)
    * Перезапустить pf
      pfctl -nf /etc/pf.conf
      pfctl -f /etc/pf.conf

    * Посмотреть правила: pfctl -sr
    * Посмотреть статистику pfctl -sa 
 .htaccess, Сделать редирект с корня на index.php
    * помогает при некоторых DDos-атаках

      RewriteEngine On
      RewriteRule ^$ /index.php [R=permanent,L]
 x509, Посмотреть Subject
      openssl x509 -in <crtNAME>.crt -noout -subject 
 iproute2 (Linux)
      Просмотр списка IP-адресов с помощью утилиты ip

      ip a
      ip a s
      ip address show

      Просмотр списка сетевых интерфейсов с помощью утилиты ip
      ip l
      ip l l
      ip link list

      Просмотр списка IP-адресов с помощью утилиты ip
      ip r
      ip r s
      ip route show

      Содержимое ARP-кэша
      ip n
      ip ns
      ip neigh show

      Удалить из ARP-кэша

      ip neigh delete 9.3.76.43 dev eth0
 Unixtime <--> человеческий вид
      FreeBSD
      date -j -f "%Y%m%d %T " "20080616 08:00:00" "+%s"
      date -r 1213873906 +"%Y%m%d %T"

      Linux
      date -d 22:00 +%s
      date -u -d "1970-01-01 1191939254 sec GMT" 
      date -u -d "1970-01-01 1191939254 sec GMT" +"%Y%m%d %T"

      echo 1213873906 | perl -pe 's/\d+/localtime($&)/e' 
 Распаковать rpm
      rpm2cpio file.rpm | cpio -idmuv --no-absolute-filenames 
 ip2hex, hex2ip
      echo 192.168.0.58 | (export IFS=.; read -a ip; printf "%02X%02X%02X%02X" ${ip[*]})
      i=ffffffc0; echo $((0x${i:0:2})).$((0x${i:2:2})).$((0x${i:4:2})).$((0x${i:6:2}))
 NFS(FreeBSD 6.X)
    * Общий прорядок перезапуска всех nfs сервисов:

      /etc/rc.d/rpcbind restart
      /etc/rc.d/nfsclient restart
      /etc/rc.d/nfsd restart
      /etc/rc.d/nfslocking restart
      /etc/rc.d/nfsserver restart
      /etc/rc.d/mountd restart

    * Проверить, что все сервисы подхватились:
    *

      /usr/bin/rpcinfo -p
      showmount -ae
 Трассировка ввода/вывода в Linux

Источник: http://www.opennet.ru/tips/info/1952.shtml

Утилита blktrace (присутствует в репозиториях Ubuntu и Debian) позволяет проконтролировать какие именно данные передаются для заданного блочного устройства.

Например, посмотреть общую статистику и детали обмена данными с /dev/sda можно выполнив команду:
         blktrace -d /dev/sda -o - | blkparse -i - 
где, blkparse фильтр для наглядного представления результатов.

В качестве альтернативы можно предложить задействование механизма /proc/sys/vm/block_dump, при записи 1 в этот файл начнется сбор данных, при записи 0 - результаты будут выведены в буфер dmesg. Скрипт для упрощения разбора данных можно загрузить здесь: http://www.digitalprognosis.com/opensource/scripts/top-disk-users

Мониторинг ввода/вывода не на уровне планировщика, а на уровне конечных процессов удобно проводить при помощи утилиты iotop (http://guichaz.free.fr/iotop/) 

  Scopes для вопросов

    * Installation, Upgrading
    * Kernel
    * Networking
          o Routing
          o Firewalls
                + stateful, GRE 
          o CARP 
    * Disk subsystem
          o GEOM, ZFS, RAID
          o Quotas
          o Hardware 
    * Package systems
    * Internet protocols & services
          o DNS
          o SMTP 
    * Security
          o Account management
          o Jails
          o VPN
          o Integrity management
          o IDS 
    * Procedures
          o Backup/Restore
          o Monitoring 
    * Applications
          o Databases, RDBMS 
    * Languages
          o Shell
          o Perl 


  Вопросы-сценарии

   1. Разбивка дисков под данную задачу
          * дано: 2 машины, будут использоваться как веб-сервер (почта, backup-server, ...)
          * требуется: разбить диски. Почему именно так? Как ещё можно и почему это хуже? 
   2. Давно висящие tcp-соединения. Надо прибить. Ваши действия.
   3. Обновить пакеты в системе. Как? У вас 30 серверов. Что меняется?
   4. Я заказчик, хочу организовать X, готов отвечать на вопросы. X - это:
          * Мониторинг.
          * Backup.
          * Почтовый сервер. 
   5. Общее:
          * Упал/не запускается демон. Ваши действия.
          * Выключаем сервер. Ваши действия. 
   6. Мега-технологии:
          * LDAP
          * Tinderbox 
   7. Скриптовые задачки:
          * sed, awk, jot 
   8. Религия:
          * ваш любимый редактор
          * какая ОС лучше? почему? где она хуже?
          * что у вас на desktop'е? 


  Дополнения

широко используемые порты 
	20, 21, 22, 23, 25, 53, 67, 68, 69, 80, 110, 123, 135, 137, 138, 143, 389, 443, 636, 993, 995, 3306, 5432
разница в sh между ` ' и "
	` возвращает значение исполняемого внутри кода
	' строгое цитирование 
	" мягкое цитирование: часть символов экранируется
структура репозитория freebsd (8-ую версию пишут не с нуля. Как она связана с предыдущими версиями?)
порты и пакеты в freebsd (что такое порты, пакеты, связь между ними. FreeBSD? бывает разных версий и под разные архитектуры. Сколько версий portstree существует?)
изобразить telnet-ом pop3, http, smtp
объяснить: ./sh.sh > 1 2>&1 < 2
рассказать, как работает dhcp, ftp, tcp handshake
пользуясь tar и ssh скопировать каталог по сети (tar cf - dir | ssh $host "tar -xf -")
список хостов в file. Обойти все циклом и вытащить uname -a (for i in `cat file`; do ssh $i "uname -a"; done)
рассказать про ssl. Что такое ca, сертификат, ключ. Как работает процедура получения сертификата.
почему для https необходим 1 адрес на каждый virtualhost? 

tips/posts/sysadmin -- Last updated 2010-07-05 Monday 00:52:21 Edit

© copyright 2010
Design by: lev