02.09.10
telnet from linux to windows. admin login.
Из серии очень специфического. Маловероятно, что кому-то пригодится, но мало ли.
telnet -8 -l `echo -n Администратор | iconv -f utf-8 -t cp866` 192.168.0.2
Curiouser and curiouser!
Из серии очень специфического. Маловероятно, что кому-то пригодится, но мало ли.
telnet -8 -l `echo -n Администратор | iconv -f utf-8 -t cp866` 192.168.0.2
Оказывается на сайте астериска, причем в весьма доступном месте, есть таблица с версиями астериска и сроками поддержки. И 1.4.x, которую мы используем, является не просто устаревшей версией ( уже есть три следующие ветки 1.6.0.20, 1.6.1.11, 1.6.2.0), аки mysql 4.1.x, а вполне себе единственным на данным момент релизом LTS (Long Term Service), который переживет практически всех “нубов”. Последний, впрочем, по поддержке переживет всего на несколько дней. Смотреть здесь.
Так что ждем окончания, а потом сразу на следующий LTS - 1.8.
Permalink Comments off
Про это немало “сказов сказано”, но ничего внятного я в итоге не нашел. Много отсылок к использованию decode/encode, парадигмы utf8 и черти чего еще. И не работает.
В зависимоcти от конкретного скрипта решает одна или две строчки:
binmode STDIN, “:utf8″;
binmode STDOUT, “:utf8″;
Все. Теперь с STDIN скрипт принимает русский, в jabber я получаю тоже русский.
Permalink Comments off
Наглые прожорливые программы, особенно в условиях ограниченного ресурса памяти, (да, того самого дешевого ресурса) на десктопе целесообразно запускать через какой-нибудь враппер типа этого:
$ cat /usr/bin/start
#!/bin/bash
ulimit -v 460800
ionice -c3 -p $$
nice -n19 $@ &
И запускать их типа start firefox, start linuxdcpp.
Опционально можно ограничить стэк и прочее. Ограничение по памяти указывать вторым аргументом. Небольшая, но автоматизация
P.S. Это, конечно, не замена pam limits и пр, но “в пределах” одного пользователя удобно.
Для того, чтобы собрать ядро с make allyesconfig (тест работы domU) нужно примерно 1.5Gb виртуальной памяти, то есть физической+свап. Иначе линкеру ее просто не хватает:
ld: final link failed: Memory exhausted.
Update: 1.5Gb тоже не хватило. Подключил 2Gb.
P.S. Размер стека естественно увеличен.
list “whitedomains” domain { google.com gmail.com yandex.ru ya.ru mail.ru bk.ru inbox.ru rambler.ru yahoo.com hotmail.com mx.aol.com nic.ru ripn.net relcom.spb.ru messagelabs.com livejournal.com vkontakte.ru odnoklassniki.ru }
…
racl whitelist list “whitedomains”
…
racl greylist from /.*@(gmail\.com|yandex\.ru|ya\.ru|narod\.ru|mail\.ru|bk\.ru|inbox\.ru|rambler\.ru|hotmail\.com|yahoo\.com|aol\.com)/ delay 1h autowhite 6h
…
Первый список немного избыточен, но не суть. Думаю, что это вполне можно раcширить. Может только еще поиграться с delay и autowhite.
Permalink Comments off
# chroot /mnt/root/
# yum clean all
Traceback (most recent call last):
File “/usr/bin/yum”, line 4, in ?
import yum
File “/usr/lib/python2.4/site-packages/yum/__init__.py”, line 43, in ?
import rpmsack
File “/usr/lib/python2.4/site-packages/yum/rpmsack.py”, line 24, in ?
from packages import YumInstalledPackage, parsePackages
File “/usr/lib/python2.4/site-packages/yum/packages.py”, line 31, in ?
import rpmUtils.arch
File “/usr/lib/python2.4/site-packages/rpmUtils/arch.py”, line 303, in ?
canonArch = getCanonArch()
File “/usr/lib/python2.4/site-packages/rpmUtils/arch.py”, line 299, in getCanonArch
return getCanonX86_64Arch(arch)
File “/usr/lib/python2.4/site-packages/rpmUtils/arch.py”, line 262, in getCanonX86_64Arch
f = open(”/proc/cpuinfo”, “r”)
IOError: [Errno 2] No such file or directory: ‘/proc/cpuinfo’
# exit
# cat /proc/cpuinfo > /mnt/root/proc/cpuinfo
# chroot /mnt/root/
# yum clean all
Cleaning up Everything
И не надо mount –bind /proc или mount -t proc…
Update: достаточно даже
# touch /proc/cpuinfo
Permalink Comments off
Типа немножко рекламы. Далеко не новость, что с bind все не очень хорошо во многих аспектах. Но, честно говоря, он является де-факто стандартом среди dns серверов и даже, цитируя opennet, он является “reference implementation, т. е. если где то стандарт можно толковать по разному, то делать надо так как это сделано в bind.”
Поэтому, пока я не столкнулся с тем, что он просто дропает часть запросов на очень нагруженном почтовом фронтенде с postfix и отьедает много памяти и проца, у меня и мысли не было искать ему замену. Готов согласиться с тем, что вероятнее всего среди авторитарных dns серверов ему сейчас замены нет, но для использования dns только в роли рекурсора все не так фатально. В статье по ссылке на opennet рассказывалось об различных альтернативах, но все они по разным причинам мне не походили. Как обычно меня не хватает на детальный разбор полетов, в смысле обзор, поэтому обойдусь практически без цифр
Лучше всего показал себя в моих условиях unbound, который в качестве рекурсора решил все проблемы, которые были у меня с bind. Память лимитируется и ему хватило 256Mb, ну и запросы он пока не дропает. Процессор не поедает.
root@mx1 ~]# top -b | grep unbound
743 unbound 1 4 0 256M 237M kqread 0 20.6H 0.49% unbound
[root@mx1 ~]# ps aux | grep unbound | head -1
unbound 743 0.1 11.7 262028 242532 ?? RsJ 26Jul09 1233:48.63 /usr/local/sbin/unbound
[root@mx1 ~]# unbound-control stats
thread0.num.queries=623538557
thread0.num.cachehits=499713882
thread0.num.cachemiss=123824675
thread0.num.recursivereplies=123824635
thread0.requestlist.avg=20.4801
thread0.requestlist.max=240
thread0.requestlist.overwritten=0
thread0.requestlist.exceeded=0
thread0.requestlist.current.all=20
thread0.requestlist.current.user=15
thread0.recursion.time.avg=2.000007
thread0.recursion.time.median=0.0278163
total.num.queries=623538557
total.num.cachehits=499713882
total.num.cachemiss=123824675
total.num.recursivereplies=123824635
total.requestlist.avg=20.4801
total.requestlist.max=240
total.requestlist.overwritten=0
total.requestlist.exceeded=0
total.requestlist.current.all=20
total.requestlist.current.user=15
total.recursion.time.avg=2.000007
total.recursion.time.median=0.0278163
time.now=1254227226.907645
time.up=5600244.498232
time.elapsed=1947.175681
Любопытно будет посмотреть его статы, когда вся хостинговая почта будет переключена на использование этого фронтенда. Собственно говоря, связка postfix+unbound+milter-greylist показала себя уже очень хорошо и я могу ее рекомендовать в качестве реального антиспамого щита, но так как почти весь спам отшибается, совсем не видно, как работать система будет при большом потоке нормальных писем, которые нужно будет сохранять и передавать бэкендам. Тут как раз я имею шанс узнать, что такое нехватка дискового io с большой очередью
. Ну все-таки задача приема писем безболезненно распараллеливается на несколько машин, поэтому не думаю, что тут будут какие-то глобальные проблемы. Так или иначе, об этом я тоже напишу по-позже.
P.S. И да, еще пара голословных утверждений: С точки зрения производительности gps(greylist policy service) - отстой. А milter-greylist рулит.
Permalink Comments off
6 стариков CGP, уставшие бороться со спамом. Молодой (2.6) воин postfix, в качестве фронтенда перед ними:
Total Connects In: 5911229 from 596296 hosts
Total Rejected Mail: 5674330
Total Greylisted Mail: 19537
Total Received Mail: 17760
Total Received Mail from Whitelisted: 6605
Смотрите в следующих сериях: Еще больше убитого спама. Еще больше спасенных калек CGP 4.1x и, конечно же, как всегда ничего неподозревающие и неблагодарные пользователи.
Фикс тривиальный, а все равно приятно:
[root@whisper febootstrap]# git-log –skip=4 -n1
commit 5bd960d0d968d25a14309ed4e1e892c249730fd4
Author: Richard Jones
Date: Sun May 10 14:39:48 2009 +0100
Fix -u option (viliar.net.ru)
P.S. Патч таки приняли as-is. Последний раз так было приятно, пожалуй, даже не когда принимали патчи-фиксы в какую-то панель управления хостингом, а когда в openvz в контрибах положили переключалку по sysctl по видимости процессов в ve0 cpt0.
P.S. Да, все верно, я действительно не понял, как вывести в git-log нужный коммит по его id.