3 янв. 2009 г.

Каждому своё или как весь мир почти сошел с ума

от себя: оч понравилось, решил выложить у себя.... Уважаемые друзья, любители PHP и MySQL! Да-да суровые админы, любители fishki.net, башорга и эмулятора Windows под Linux, я обращаюсь именно к вам. Ну и, пожалуй, ещё к вам. Ага, не озирайтесь так растерянно, это ведь вы недавно совершили набег на книжный и скупили всю полку компьютерной литературы? Вы-вы, камеры наблюдения всё зафиксировали. А теперь вы обдумываете, как правильно подписаться «вэбмастером» или «вебмастером». Я хочу поговорить с вами о специализации и разделении. Давайте побеседуем мирно, отложив в сторону стокилограммовый мануал по Ubuntu и «PHP для чайников». Итак, начнём с фантазии. Невинной. Представьте себе, что вы суровый программист – влюбились. (Можете не краснеть, мы все тут люди взрослые). И надо вам как-то привлечь внимание этого нежного цветка и неземного создания. Как будем действовать? Попробуем по пунктам. Пункт первый: попробуем сразить цветами. Итак, мы идем в палатку у метро, и там у нас происходит приблизительно следующий диалог: - Дайте мне три розочки и украсьте вон теми веточками. - Вот эти? А вы знаете, что эти редкие розы не очень долго простоят с папоротником? И вообще отвратительно сочетаются? А как наcчет того, что на них может поселиться Букашкус Алергикус? И ещё, молодой человек, у вас степень по флористике есть? То-то же - бегом учить! Но самое хорошее, если вы хотите букет подарить - вырастите розы сами! Не умеете? А вы почитайте вот книжечку про разведение роз в суровом климате средней полосы, и вот плюс ко всему … почвоведение – без этих знаний никак! Какие вам букеты…. Вы ж не знаете ни черта? Куда же вы молодой человек?!!! А книжки?!!... Вы в ужасе выскакиваете из палатки. Ведь вы всего лишь хотели цветов?! Вы ни разу не флорист – но разве это отменяет желание получить симпатичный букет. Ладно, не отчаиваемся! Обойдемся без цветов. Попробуем стихи. На этот раз пойдем к другу-поэту. Друг не подведет. - Стихи для девушки? – радуется друг. – Ну, это просто. Азбуку ты знаешь, это хорошо. По литературе заслуженный трояк был. Вот тебе курс за 11-й класс – освежи. Потом пособие для Новеллиста.. что тут еще у меня есть? – Друг поворачивается к своим огромным книжным полкам. - А если как-нибудь попроще? Ну, там милые четверостишия переделать.. я видел в интернете. – Вы делаете осторожный шажок к двери – похоже, все сошли с ума. Вам ведь нужны стихи, а не весь этот ворох знаний. - Что? - глаза вашего друга практически сравниваются по размеру с дугами очков – шаблонность! Не позволю! - и он тайком запихивает в ваш пакет учебник по русскому языку Розенталя. - Ну, тогда быть может ты мне напишешь… - Вы смотрите с надеждой и друг успокаивается. - Сам, милый мой, сам, у меня вон там поэтическая энциклопедия, так уж и быть возьми.. с 8-го по 11-й том, ознакомься. И не забудь про связку ямба и хорея! – кричит уже он вам в спину, когда вы понуро ползете нагруженные энциклопедией. – Сейчас все на ней пишут. Без неё – о стихах и не думай… Шаблонность – ещё раз себе под нос фыркает он и закрывает дверь. Вы останавливаетесь. Вам грустно. Ни цветов, ни стихов…. А ведь могла быть любовь. THE END Итак, к чему все это было? Милые суровые вебмастера и программисты, утрите слезы и просто поймите. Вы хотите цветы и стихи? А поэты и флористы хотят сайты. Просто сайты, милые их душе и сердцу, быть может, не идеальные, и чуть-чуть похожие. И не нужно им учить web-программирование – ведь их букеты и так прекрасны, а стихи проникновенны. Просто каждому своё :) И я не знаю, что там у вас возле подъезда, а лично у меня на дворе 21 век. Век, когда многое стало доступнее. оригинал туд

27 нояб. 2008 г.

отстреливаем Sleep подключения...

итак... иногда бывает ситуация (толи ошибка на сайте, толи малоли что).... вообщем много соединений со статусом Sleep пока идет поиск причины их нужно как-то удалять. Перезагружать mysql - это не выход. Задача - удалять соединения которые находятся в статусе Sleep. кому читать некогда весь пост вот рецепт - sh скрипт: ---- #!/bin/bash LOGIN=you_login PASS=you_pass /usr/bin/mysqladmin -u ${LOGIN} -p${PASS} kill `/usr/bin/mysql -u ${LOGIN} -p${PASS} -Ns -e "show processlist" | grep "Sleep" | awk '{print $1}' | xargs | tr " " ","` ---- теперь по порядку, кому интересно... Первым делом нужно получить этот самый список процессов которые у нас работают (в клиенте набираем): >show processlist; получим список.... руками это делать не гламурно, будем это делать в консоле: ---- >/usr/bin/mysql -u ${LOGIN} -p${PASS} -Ns -e "show processlist" ---- -Ns убираем название столбцов и линии.... -e "и в скобках комманда которую нужно выполнить клиенту" отфильтруем результат: --- grep "Sleep" --- впринципе можно фильтровать не только Sleep, а и по адресу, по базе ... фантазию включаем... из всего этого вывода нам нужна только 1 колонка, там где номер процесса: ---- awk '{print $1}' ---- теперь у нас будет вывод в столбик, нам нужно в линию: ---- xargs ---- но еще нам нужно заменить пробел между номерами процессов на запятую: ---- tr " " "," ---- все... теперь мы имеем список всех нужных нам процессов в одну строчку, перечисленных через запятую. и делаем это все в качестве параметра mysqladmin.

8 окт. 2008 г.

дополнил свой скрипт по postfix'у

переделал скрипт который обрабатует письма, теперь выглядит таг:
#!/bin/sh
SENDMAIL="/usr/sbin/sendmail -i"
EGREP=/bin/egrep
EX_UNAVAILABLE=69
SIDELINE_DIR="/var/spool/filter"
SPAMLIMIT=5
trap "rm -f /var/tempfs/out.$$" 0 1 2 3 15
cat | /opt/spamassasin/bin/spamc > /var/tempfs/out.$$
if $EGREP -q "^X-Spam-Level: \*{$SPAMLIMIT,}" < /var/tempfs/out.$$  
then
    FROM=`cat /var/tempfs/out.$$ | $EGREP -i "From: " | head -n 1`
    echo `date +%Y-%m-%d_%R` $FROM >> /var/log/spamd_delete
  #mv /var/tempfs/out.$$ $SIDELINE_DIR/`date +%Y-%m-%d_%R`-$$
else
 $SENDMAIL "$@" < /var/tempfs/out.$$
fi
exit $?  
мож кому пригодится

обработка почты Postfix

вчера появилась необходимость прикрутить на наших серверах spamd (наконецто начальство дало комманду)... потрачено почти 5 часов, т.к. репы для SuSE 10 не поддержуются ныне... разобрался что такое perl CPAN.
Но открыл для себя америку так сказать... итак. 
Нужно как-то обрабатывать входящую почту. 
по логике вещей - нужно что бы postfix отдавал входящее сообщение куда то на обработку.
берем правим /etc/postfix/master.cf
добавляем правило фильтр:
spamchk   unix  -       n       n       -       10      pipe
flags=Rq user=spamd argv=/opt/spamassasin/bin/spamchk -f ${sender} -- ${recipient}
тут мы имеем:
1. spamchk - имя фильтра обрабатывающего
2. flags - хз, но с Rq работает )
3. user - от чьего имени запускать
4. argv - путь к коммандной оболочке, и параметры откого кому... а в STDOUT postfix лупит тело сообщения.
фильтр есть, теперь его нужно к чему-то применить... в том же файле:
smtp      inet  n       -       n       -       50       smtpd
-o content_filter=spamchk:dummy
строка smtp inet... у нас уже есть, она означает транспорт по умолчанию, а вот следующей строкой мы к нему добавляем "-o ..." - и говорим что все содержимое должно отдаваться на spamchk фильтр.
теперь собсно сам файл:
#!/bin/sh
SENDMAIL="/usr/sbin/sendmail -i"
trap "rm -f /var/tempfs/out.$$" 0 1 2 3 15
cat | /opt/spamassasin/bin/spamc > /var/tempfs/out.$$
$SENDMAIL "$@" < /var/tempfs/out.$$ exit $? 
файл делает по шагам следующее...
все содержимое которое ему было передано - передает на spamc (это клиент SpamAssasin) и весь "обработанный" вывод кидает во временный файл /var/tempfs/out.$$
затем следующим шагом все содержимое которое находится в /var/tempfs/out.$$ мы отдаем sendmail'у для локальной доставки... и код возврата возвращаем для postfix...
вот-с...
теперь у нас есть поле для фантазий... spamc у нас настроен так что бы заменять Subject (добавлять к письму если оно идентифицировано как спам - [***SPAM***])
соответственно перет отправкой сообщения внутреннему sendmail'у мы можем как угодно его обработать... мы можем начиная от "просто вести статистику" в БД/Файл еще как нить, можно добавить на наличие после spamc флага X-SPAM либо другого флага вообще письмо никуда не отсылать... 
и т.д. и т.п. - полет для фантазии хороший получается )
седня буду эксперементировать... )

почитал про Google Chrome

Сегодня ночью пересилил себя и почитал про гугл хром... какие в нем возможности - остался в восторге... для тех кто еще не читал/не смотрел - советую.

традиционное....

по традиции создаю сообщение.
Hello World. )