03.04.2014 Views

Май - Xakep Online

Май - Xakep Online

Май - Xakep Online

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

unixoid<br />

Андрей Матвеев<br />

Tips'n'tricks<br />

/ andrushock@real.xakep.ru /<br />

юниксоида<br />

Доблестный юниксоид!<br />

Представляю твоему вниманию<br />

очередную подборку<br />

различных трюков,<br />

рекомендаций и советов,<br />

касающихся *nix-систем.<br />

Network<br />

Создание шифрованного туннеля на 10 минут<br />

для безопасного получения почты:<br />

$ ssh -2 -4 -C -N -f -L 8110:<br />

localhost:110 myname@mydomain.ru \<br />

sleep 600<br />

Резервирование домашней директории на<br />

удаленном хосте:<br />

% tar zcf - ~/ | ssh trusted.box.ru<br />

'cat > mybackup.tgz'<br />

Оптимизация правил фильтра пакетов pf:<br />

# pfctl -nvf /etc/pf.conf > /root/<br />

pf.conf.orig<br />

# pfctl -nvf /etc/pf.conf -o ><br />

/root/pf.conf.optimized<br />

# diff -u /root/pf.conf.orig /root/<br />

pf.conf.optimized | less<br />

Перехват пакетов, проходящих через беспроводной<br />

сетевой интерфейс ral0:<br />

# tcpdump -nettti ral0 -y IEEE802_<br />

11_RADIO<br />

Создание IP-псевдонима (алиаса) для<br />

сетевого интерфейса fxp0 с IP-адресом<br />

192.168.1.1:<br />

# ifconfig fxp0 inet<br />

alias 192.168.1.2 netmask<br />

255.255.255.255<br />

ТРюки и советы юниксоиду<br />

Shell<br />

Аккуратное удаление временных файлов,<br />

созданных более семи дней назад:<br />

# find /tmp -type f -name '*' -mtime<br />

+7 -print0 | xargs -0 rm -f<br />

Автоматизированное изменение прав доступа<br />

к файлам и директориям:<br />

$ find . -type f -print0 | xargs -0<br />

chmod 644<br />

$ find . -type d -print0 | xargs -0<br />

chmod 755<br />

Фильтрация текстового потока по заданному<br />

шаблону (в данном случае пропускаем закомментированные<br />

строки):<br />

% grep -v '^#' /etc/sysctl.conf<br />

net.inet.ip.forwarding=1<br />

net.inet.esp.enable=0<br />

net.inet.ah.enable=0<br />

net.inet.gre.allow=0<br />

Расширенные регулярные выражения в<br />

действии:<br />

% netstat -na -f inet | egrep<br />

'80|443'<br />

tcp 0 0 *.80 *.* LISTEN<br />

tcp 0 0 *.443 *.* LISTEN<br />

Компиляция проекта в фоновом режиме:<br />

# nohup make &<br />

Журналирование интерактивной сессии без<br />

использования штатной утилиты script:<br />

% ksh -i |& tee mysession.log<br />

Пример использования множественных<br />

конвейеров:<br />

% mysql --user=jabberd2 --<br />

password=noidea jabberd2 \<br />

-e 'SELECT * FROM active' | fgrep<br />

-v collection-owner | \<br />

sort | awk '{ print $1 }' > /var/<br />

www/htdocs/jabber2_users.txt<br />

Misc<br />

Удобный просмотр всех журнальных записей в<br />

реальном времени с помощью программы screen<br />

из набора GNU-утилит:<br />

$ vi ~/.screenrc<br />

screen -t logz1 1 tail -f /var/log/<br />

authlog<br />

screen -t logz2 2 tail -f /var/log/<br />

daemon<br />

screen -t logz3 3 tail -f /var/log/<br />

maillog<br />

screen -t logz4 4 tail -f /var/log/<br />

messages<br />

screen -t logz5 5 tail -f /var/log/<br />

xferlog<br />

select 1<br />

Кодирование фильма для комфортного просмотра<br />

на КПК:<br />

$ mencoder berkova.avi -oac mp3lame<br />

-ovc lavc -lavcopts \<br />

vcodec=mpeg4:vhq:vqmin=2:vqmax=20:<br />

vmax_b_frames=2:vbitrate=100:<br />

vqcomp=0.6 \<br />

-vop scale=220:165,eq=15 -ofps 20<br />

-zoom -sws 2 -lameopts \<br />

cbr:br=32:aq=0:mode=3 -o berkova_<br />

pda.avi<br />

Создание ISO-образа OpenBSD 4.0 своими руками<br />

(дистрибутивные файлы из ftp://ftp.openbsd.<br />

org/pub/OpenBSD/4.0/i386/ должны находиться в<br />

каталоге /home/openbsd/image/4.0/i386):<br />

# cd /home/openbsd<br />

# mkhybrid -b 4.0/i386/cdrom39.fs -c<br />

boot.catalog \<br />

-lrvDJLN -hide boot.catalog -hidejoliet<br />

boot.catalog \<br />

-V "obsd40" -o obsd40.iso image<br />

Уничтожение всех процессов, использующих<br />

/mnt/cdrom:<br />

# cd /<br />

# fuser -k -m /mnt/cdrom<br />

# umount /mnt/cdrom<br />

Пример запуска игрового сервера из стартового<br />

скрипта:<br />

# vi /etc/rc.local<br />

/usr/bin/su -c "cd /usr/<br />

local/games/quake3 && /usr/local/bin/<br />

screen -d -m ./q3ded +exec configfile.<br />

cfg". z<br />

xàêåð 05 /101/ 07<br />

/<br />

119

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!