28 апр. 2010 г.

Netwok Scanner (saned + xsane) HOWTO

Замечательный разжеванный метод настройки saned и xsane для работы сканера по сети. Если кратко, то
1) сервер:
а)  /etc/sane.d/saned.conf :
localhost
192.168.0.0/24
b) /etc/xinetd.d/sane-port: 
service sane-port
{
port = 6566
socket_type = stream
wait = no
user = nobody
group = scanner
server = /usr/sbin/saned
disable = no
}
c)  /etc/services:
sane-port 6566/tcp # SANE network scanner daemon
 d) /etc/rc.d/xinetd start

2) xsane
 a)  /etc/sane.d/net.conf:
192.168.0.1 #saned server IP

Как-то так, да...

14 апр. 2010 г.

Добыча вложений из eml-файла

Есть .eml файл, внутри которого торчит бинарник. Задача - достать оный ;) Оказалась - не такая уж и тривиальная: васяких типа доставальщиков, экстракторов и прочих вьюверов масса, но все хотят денег и не хотят работать. Прочитать письмо можно, банально сменив разрешение на .mht и скормив любому браузеру. А вот достать аттач - не выходит. Решение: плугин для просмотра\работы с EML-файлами для Total Commander. Ставим, откываем на F3 - правой кнопкой - Save Attached To... Всё! ;) Теоретически плуг работает и с Unreal Commander, но практически у меня не завелся - файл все равно открывается в Universal Viewer'е, что неправильно. Разбираться, честно, лень, спать пора ;)

13 апр. 2010 г.

Vmware Server 2.0.2 + RuntimeFault: Database temporarily unavailable or has network problems.

Странная ботва с VMware Server, была как на 2.0.1, так и после обновления до 2.0.2: при попытке добавить новую роль или ассоциировать имеющиеся роли с пользователями вмтварь плюется ошибкой вида
RuntimeFault: Database temporarily unavailable or has network problems.
Выяснилось (тут и тут), что проблема возникает вследствие того, что при добавлении юзера в роль происходит конфликт id-номеров вновь добавляемого пользователя, и администратора. Лечится это изменением директивы NextAceId с 11 на 20 в файле  /etc/vmware/hostd/authorization.xml. 

12 апр. 2010 г.

Контрольная цифра EAN-13

Потребовалось "восстановить" незаписанную вовремя контрольную (13-ую, последнюю) цифру штрихкода EAN-13. Собственно, результат:
#!/bin/bash
#Проверка наличия кода
if [ -z "$1" ]; then
echo "Введите сканкод в качестве аргумента"
exit 0
fi
CODE12=$1
#Определение длины кода
LEN1=`echo $CODE12 | wc -m`
#отбрасывание символа перевода строки
let LEN2=$LEN1-2
#echo $LEN1
#echo $LEN2
#Разбиение строки кода на отдельные цифры
for D in `seq 0 $LEN2`
do
let NUM=$D
let DIG$NUM=${CODE12:$D:1}
# echo DIG$NUM=$DIG$NUM
# echo $D
done
#Если по длине предполагается неполный EAN13, произвести расчет контрольной цифры
if [ $LEN2 == 11 ];then
#chet
VAR1=`expr $DIG1 + $DIG3 + $DIG5 + $DIG7 + $DIG9 + $DIG11`
#nechet
VAR2=`expr $DIG0 + $DIG2 + $DIG4 + $DIG6 + $DIG8 + $DIG10`
VAR3=`expr $VAR1 \* 3`
VAR4=`expr $VAR2 + $VAR3`
#Выбираем только последнюю цифру переменной $VAR4, если ее длина больше 1
LENVAR4=`expr length $VAR4`
if [ "$LENVAR4" -gt "1" ]; then
VAR4OFFSET=`expr $LENVAR4 \- 1`
let VAR4LAST=${VAR4:$VAR4OFFSET:1}
# echo $VAR4LAST
else
#Если длина $VAR4 единична, сразу определяем $VAR4LAST
VAR4LAST=$VAR4
fi
CTRL=`expr 10 \- $VAR4LAST`
if [ $CTRL == 10 ]; then
CTRL=0
fi
#Вывести контрольную цифру
  echo "Контрольная цифра для штрихкода $CODE12 - $CTRL"
fi

8 апр. 2010 г.

Karmic + MOTD

Не могу сказать, в какой из версий Ubuntu после 8.04 (hardy) появилась фича пихать в сообщение приветствия после успешного логина информацию об имеющихся обновлениях, но в 9.10 (karmic) она имеется точно. И меня напрягают неизбежные тормоза между успешной аутентификацией и появлением консоли. Поэтому надо выключить. Беглый обзор системы дал следующий рецепт: найти в /etc/pam.d/sshd строчку 
 session optional pam_motd.so
и закомментировать оную. Быстро и просто.
Если копнуть глубже, то выясняется, что сабжевый PAM-модуль поставляет пакет update-motd. Там же говорится, что для отключения динамического заполнения MOTD достаточно удалить содержимое /etc/update-motd.d/. Или вообще снести напрочь этот пакет ;)
Так или иначе, но без сей приблуды (не спорю, местами полезной) консолька снова радует быстрым логином ;)