|
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/)
* 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