Tips'n'tricks юниксоидаАндрей Матвеев Хакер, номер #101, стр. 119 Доблестный юниксоид! Представляю твоему вниманию очередную подборку различных трюков, рекомендаций и советов, касающихся *nix-систем. NetworkСоздание шифрованного туннеля на 10 минут для безопасного получения почты:$ ssh -2 -4 -C -N -f -L 8110:localhost:110 myname@mydomain.ru \ sleep 600 Резервирование домашней директории на удаленном хосте:% tar zcf - ~/ | ssh trusted.box.ru 'cat > mybackup.tgz' Оптимизация правил фильтра пакетов pf:# pfctl -nvf /etc/pf.conf > /root/pf.conf.orig # pfctl -nvf /etc/pf.conf -o > /root/pf.conf.optimized # diff -u /root/pf.conf.orig /root/pf.conf.optimized | less Перехват пакетов, проходящих через беспроводной сетевой интерфейс ral0:# tcpdump -nettti ral0 -y IEEE802_11_RADIO Создание IP-псевдонима (алиаса) для сетевого интерфейса fxp0 с IP-адресом 192.168.1.1: # ifconfig fxp0 inet alias 192.168.1.2 netmask 255.255.255.255
ShellАккуратное удаление временных файлов, созданных более семи дней назад:# find /tmp -type f -name '*' -mtime +7 -print0 | xargs -0 rm -f Автоматизированное изменение прав доступа к файлам и директориям:$ find . -type f -print0 | xargs -0 chmod 644 $ find . -type d -print0 | xargs -0 chmod 755 Фильтрация текстового потока по заданному шаблону (в данном случае пропускаем закомментированные строки):% grep -v '^#' /etc/sysctl.conf net.inet.ip.forwarding=1 net.inet.esp.enable=0 net.inet.ah.enable=0 net.inet.gre.allow=0 Расширенные регулярные выражения в действии:% netstat -na -f inet | egrep '80|443' tcp 0 0 *.80 *.* LISTEN tcp 0 0 *.443 *.* LISTEN Компиляция проекта в фоновом режиме:# nohup make & Журналирование интерактивной сессии без использования штатной утилиты script:% ksh -i |& tee mysession.log Пример использования множественных конвейеров:% mysql --user=jabberd2 --password=noidea jabberd2 \ -e 'SELECT * FROM active' | fgrep -v collection-owner | \ sort | awk '{ print $1 }' > /var/www/htdocs/jabber2_users.txt SystemДобавляем второй своп объемом 256 Мб (пример для OpenBSD):# dd if=/dev/zero of=/home/swap bs=1k count=262144 # chmod 600 /home/swap # swapctl -a /home/swap # echo "/home/swap /home/swap swap sw 0 0" >> /etc/fstab Создание нескольких виртуальных звуковых каналов (для FreeBSD):# sysctl hw.snd.pcm0.vchans=4 # sysctl hw.snd.maxautovchans=4
X WindowСоздание снимка экрана с помощью утилиты import из пакета ImageMagick:$ import -display localhost:0.0 -window root screenshot.jpg Изменение разрешения экрана без перезапуска X-сервера:# xrandr -s 1024x768 -r 85
MiscУдобный просмотр всех журнальных записей в реальном времени с помощью программы screen из набора GNU-утилит:$ vi ~/.screenrc screen -t logz1 1 tail -f /var/log/authlog screen -t logz2 2 tail -f /var/log/daemon screen -t logz3 3 tail -f /var/log/maillog screen -t logz4 4 tail -f /var/log/messages screen -t logz5 5 tail -f /var/log/xferlog select 1 Кодирование фильма для комфортного просмотра на КПК:$ mencoder berkova.avi -oac mp3lame -ovc lavc -lavcopts \ vcodec=mpeg4:vhq:vqmin=2:vqmax=20:vmax_b_frames=2:vbitrate=100:vqcomp=0.6 \ -vop scale=220:165,eq=15 -ofps 20 -zoom -sws 2 -lameopts \ cbr:br=32:aq=0:mode=3 -o berkova_pda.avi Создание ISO-образа OpenBSD 4.0 своими руками (дистрибутивные файлы из ftp://ftp.openbsd.org/pub/OpenBSD/4.0/i386/ должны находиться в каталоге /home/openbsd/image/4.0/i386): # cd /home/openbsd # mkhybrid -b 4.0/i386/cdrom39.fs -c boot.catalog \ -lrvDJLN -hide boot.catalog -hide-joliet boot.catalog \ -V "obsd40" -o obsd40.iso image Уничтожение всех процессов, использующих /mnt/cdrom:# cd / # fuser -k -m /mnt/cdrom # umount /mnt/cdrom Пример запуска игрового сервера из стартового скрипта:# vi /etc/rc.local /usr/bin/su <username> -c "cd /usr/local/games/quake3 && \ /usr/local/bin/screen -d -m ./q3ded +exec configfile.cfg" |