VirtualBox и warning in file ‘/var/lib/dpkg/available’ near line 53968 package ‘virtualbox-3.0’

При очередном обновлении "сквизи" вылезли варнинги

warning, in file '/var/lib/dpkg/available' near line 12159 package 'virtualbox':
error in Version string '1.6.6-35336_Debian_lenny': invalid character in revision number
.....

Если коротко, то это баг. Подробности описаны на bugs.debian.org

Лечится ручной правкой:

sed -i -e '/^Version:/ s/[^-a-zA-Z0-9:.+~ ]/+invalid+char+removed+by+dpkg+/g' /var/lib/dpkg/available

(Взято с баг-трекера)

Directadmin+nginx полный автомат

Доброго всем LOCALTIME ! 🙂

Решил поделиться с общественностью своими скриптами для связки directadmin и nginx.

В свое время для снижения нагрузки на apache было решено поставить nginx. После некоторого гугления была сделана первая попытка связать панель и nginx. На тот момент скрипт умел совсем немного - только создавать и удалять конфигурационные файлы виртуальных хостов. Он не умел работать ни с поддоменами, ни с алиасами, не умел и переименовывать конфиги доменов.

Затем последовала вторая попытка. Этот скрипт уже был немного "умнее". Он умел создавать, удалять не только домены, но и поддомены. Однако, после того, как количество вирт. хостов выросло и управляться с большим количеством доменов стало как-то трудно, было решено полностью переписать всю схему работы связки directadmin и nginx. Все домены/поддомены/алиасы будут описываться в map-файле, а в конфиге будут использоваться соответствующие переменные, тем самым будет использоваться всего один небольшой общий конфиг, в котором и описывается виртуальный хост.
"Особые" домены описываются в отдельных конфигурационных файлах.
Кроме того, логи для всех вирт. хостов будет писать nginx, освободим нашего монстра apache от этой обязанности и оставим ему писать только error_log. Что положительно скажется на производительности.

Сказано - сделано.
По моей просьбе и некоторому подобию ТЗ, мой друг Александр Русских написал совсем новый и удобный скрипт, который и будет использоваться в этой статье.
Еще одна моя просьба была направлена Кириллу Коринскому, который написал небольшой патч для nginx. Данный патч выдает 503 ошибку, если уровень load average системы выше заданного в конфиге значения. Да, это грубо, но зато может уберечь сервер от ухода в глубокий своп. Поэтому уровень LA необходимо указывать заведомо высокий.

Итак, поехали.

Часть первая (Если nginx уже установлен - смотрим вторую часть)
У нас в распоряжении сервер с установленной панелькой DirectAdmin (отличная, кстати, панель). Чтобы не делать из системы свалку, nginx будет ставиться из репозитария.

Добавляем репозитарий в список, импортируем ключи и ставим nginx:

# echo "deb http://ftp2.debian.org.ua/debian-dou/ lenny main" >> /etc/apt/sources.list
# gpg --keyserver keys.gnupg.net --recv-keys 0A3D4789
gpg: requesting key 0A3D4789 from hkp server keys.gnupg.net
gpg: key 0A3D4789: public key "Debian.org.ua Custom Repository " imported
gpg: Total number processed: 1
gpg:               imported: 1
# gpg --armor --export 0A3D4789 | apt-key add -
OK
# aptitude update
# aptitude install nginx

Стоит заметить, что в этот пакет включено два неофициальных патча, которые описаны в блоге автора

После установки nginx не запустится - это нормально, так как на 80-м порту все еще работает apache.
Дальше будем приводить в порядок конфигурационные файлы apache и nginx.
Читать дальше Directadmin+nginx полный автомат

Как восстановить сохраненный пароль в kopete

Для восстановления сохраненного пароля в kopete для jabber-аккаунта  можно воспользоваться следующим кодом на питоне:

from ConfigParser import ConfigParser
import sys
from kdecore import KStringHandler
config = ConfigParser()
config.read(".kde/share/config/kopeterc")
cryptedpass = config.get("Account_JabberProtocol_" + sys.argv[1], 'Password')
print KStringHandler().obscure(cryptedpass.decode('utf-8'))

Сохраняем код в файле ~/getpass.py и затем выполняем его:

# python ./getpass.py userid@jabber.org

В итоге получаем расшифрованный пароль для аккаунта 🙂

Если в скрипте заменить Account_JabberProtocol_ на Account_ICQProtocol_ то можно вытянуть из конфига kopete пароль от icq

Код нашел на этом блоге.

Для KDE4 код такой:

from ConfigParser import ConfigParser
import sys
from PyKDE4.kdecore import *
config = ConfigParser()
config.read('./kopeterc')
cryptedpass = config.get('Account_JabberProtocol_' + sys.argv[1], 'Password')
print KStringHandler.obscure(cryptedpass.decode('utf-8'))

Этот код для KDE4 любезно предоставил Lex

Скрипт автоматической проверки IP адреса по спам базам.

Наткнулся я тут случайно на скрипт автоматической проверки IP адреса по спам базам. Заинтересовался, проверил и решил тут написать.

пример проверки IP адреса по спам-базам:

# spam-check -p 91.124.123.123
Результат       Сервер                             Ответ сервера
--------------------------------------------------------------------------------------91.124.123.123------------
[+++SPAM+++]  - b.barracudacentral.org           - http://www.barracudanetworks.com/reputation/?pr=1&ip=91.124.123.123
[+++SPAM+++]  - cbl.abuseat.org                  - Blocked - see http://cbl.abuseat.org/lookup.cgi?ip=91.124.123.123
[+++SPAM+++]  - xbl.spamhaus.org                 - http://www.spamhaus.org/query/bl?ip=91.124.123.123
[+++SPAM+++]  - zen.spamhaus.org                 - http://www.spamhaus.org/query/bl?ip=91.124.123.123
[+++SPAM+++]  - dnsbl.sorbs.net                  - Dynamic IP Addresses See: http://www.sorbs.net/lookup.shtml?91.124.123.123
[+++SPAM+++]  - dul.dnsbl.sorbs.net              - Dynamic IP Addresses See: http://www.sorbs.net/lookup.shtml?91.124.123.123

Скрипт написан на bash, работает на "ура" 🙂

Сам скрипт можно взять тут или тут

Оригинал - тут