вторник, 15 июня 2010 г.

Редактирование SMTP заголовков в postfix

Встала задача удалять часть smtp заголовков из письма, навскидку ничего не предумалось, так что нужный ответ нашел тут. Вкратце:

в /etc/postfix/main.cf пишется
header_checks = regexp:/etc/postfix/header_checks

в /etc/postfix/header_checks пишется
/^Received:.*\[192\.168\.0\.[0-9]/      IGNORE

делается postmap /etc/postfix/header_checks и затем postfix reload

четверг, 27 мая 2010 г.

Проверка сертификата FTP сервера.

Довелось проверить валидность сертификата на FTP сервере. Раньше такого не делал, так что полез курить ман по openssl. Получись так:
openssl s_client -connect ftp.site.com:21 -starttls ftp
Вообще отличная дока по практическому применению openssl есть тут

On-Line проверка по урлу.

Понадобился on-line инструмент, чтобы проверять страницу по урлу. Пока нашел только от DrWeb

среда, 26 мая 2010 г.

WScript.exe: There is no script engine for file extension ".vbs"

Сегодня устанавливал на одной машинке 3-й сервис пак для винды и наткнулся на проблему с запуском VBS скриптов. У меня есть скриптик, который я когда-то нашел в сети и немного переделал под свои нужды. Этот скрипт понижает приоритет службы "Automatic Windows Updates" до LOW и тем самым избавляет пользователей от тормозов при в первый минут 10 после загрузки компа.

В этой системе файл выглядел как неизвестный и не был ассоциирован с wscript.exe. При попытке выполнить его как wscript.exe wuauserv.vbs выскакивала ошибка, что 'There is no script engine for file extension ".vbs"'

Для решения проблемы нужно найти файлик %WINDIR%\inf\wsh.inf и в контектном меню выбрать "Install". После этого проблемы с запуском .vbs прошли.

Код wuauserv.vbs
Const BELOW_NORMAL = 16384
Const LOW = 64
Set objWMIService = GetObject("winmgmts:\\.\root\CIMV2")
Set colServices = objWMIService.ExecQuery( _
"SELECT * FROM Win32_Service where name='wuauserv'")
For Each oService in colServices
Set colProcesses = objWMIService.ExecQuery( _
"SELECT * FROM Win32_Process where ProcessId=" & oService.ProcessId )
For Each oProcess in colProcesses
ErrCode = oProcess.SetPriority(LOW)
Next
Next

четверг, 22 апреля 2010 г.

Проделки yum.

Всегда считал, что софт, считающий себя умнее человека - вреден, сегодня лишний раз убедился в этом.
Вчера несколько часов настраивал почту (postfix + sasl + courier-imap + courier-authlib + mysql) на новом сервере (CentOS 5.4 x86_64). Из коробки такая схема не работает, так что пришлось пересобрать часть пакетов. Провозился часов пять, пока настроил и перенес данные со старого сервера, еще раз проверил хождение почты и пошел домой.
Сегодня с утра решил проверить логи:
postfix/smtpd[14124]: fatal: unsupported dictionary type: mysql
postfix/qmgr[14310]: fatal: unsupported dictionary type: mysql
Полез проверять логи yum - ночью запустилось обновление системы и часть моих пересобранныех пакетов было "обновлено". Вредитель нашелся в заданиях рутового крона, раньше вроде в cron.daily было. Чтобы поправить ситуацию в будущем добавил в /etc/yum.conf
[main]
...
exclude=postfix courier-authlib*

четверг, 15 апреля 2010 г.

Обновление прошивки NEC Optiarc AD-7170A

Имеется DVD-RW резак NEC Optiarc AD-7170A с прошивкой версии 1.02. Симптомы: читает и пишет CD-R/RW, но редко читает и пишет только избранные DVD-R/RW. Перед тем как выбросить и купить новый (подумываю попробовать резаки от Lite-On), решил попробовать залить в него обновленную фирмварь. Новая прошивка вливается посредством binflash. Все команды выполняются от root. Проверяем что привод поддерживается прошивальщиком
# necflash -scan
Binflash - NEC version - (C) by Liggy and Herrie
Visit http://binflash.cdfreaks.com

List of supported devices:

Device   : /dev/hda
Vendor   : Optiarc
Model    : DVD RW AD-7170A
Firmware : 1.02
Сначала сохраняем старую версию прошивки
# necflash -v -dump old_firmware_1.02.bin /dev/hda
Новую версию прошивки я брал здесь На время заливки лучше включить режим PIO для сидюка
# hdparm -d0 /dev/hda
Теперь заливаем новую версию
# necflash -v -flash 105bt_orig.bin /dev/hda
После прошивки, перезагружаемся и смотрим результат
# necflash -scan
Binflash - NEC version - (C) by Liggy and Herrie
Visit http://binflash.cdfreaks.com

List of supported devices:

Device   : /dev/hda
Vendor   : Optiarc
Model    : DVD RW AD-7170A
Firmware : 1.05
Хоть на новой прошивке работает немного медленнее, но зато проблем с чтением и записью больше нету.

ALSA в многопользовательской среде

Дома пришлось создать жене отдельного пользователя, чтобы можно было пользоваться одним и тем же софтом и не мешать друг-другу настройками. Все нормально, но вот только неудобно переключаться на соседний сеанс, чтобы выключить музыку или фильм.
Недавно наткнулся на описание плагина softvol для alsa и решил его использовать. Схема работы проста: для каждого пользователя создается отдельный канал в программной громкостью и все они микшируются через dmix.
~/.asoundrc
pcm.!default {
    type            plug
    slave.pcm       "softvol"
}

pcm.softvol {
    type            softvol
    slave.pcm       "plug:dmix"
    
    control {
        name        "Andrey"
        card        0   
    }   
}
После первого использования появится отдельный канал (чтобы он стал доступен уже запущенным приложениям, их нужно перезапустить). Так выглядит alsamixer при работе двух пользователей:


Настройка канала микшера в приложениях:
~/.mplayer/config
ao=alsa
mixer-channel=Andrey

~/.mpdconf
audio_output {
   type       "alsa"
   device     "default"
}
mixer_type    "alsa"
mixer_device  "default"
mixer_control "Andrey"

Чтобы теперь разом отключить звук у другого пользователя достаточно повесить на хоткей amixer set Ann 0%