понедельник, 30 марта 2009 г.

Windows. Не хочет выполняться программа из сетевого окружения

Недавно столкнулся с отказом запуска программ из сетевого окружения на Windows 2003 Server x64. Ошибка типа "У вас нет доступа или права на выполнение данного приложения", хотя в политиках SRP путь прописан. Решилось внесением этого машины, на которой расположена шара, в список локальных серверов в настройках безопасности Internet Explorer-а.

ITVSystems Golden Gate. Обновление и экспорт отчетов

В новых версиях ITVSystems Golde Gate 2002 появилась возможность экспорта-импорта данных посредством командной строки. Вот краткая инструкция:
Описание командной строки утилиты экспорта/импорта данных



GGDataExchange.exe [-l логин] [-p пароль] [-txt | -xml]
[-export экспортируемый_файл |
-import импортируемый_файл [-header "строка_заголовка"] |
-report "параметры отчета"]

-l логин - параметр для указания логина администратора, под которым
выполняется подключение к "Золотым Воротам".

-p пароль - пароль администратора

Если логин не указан, но указан произвольный пароль, то
утилита попытается подключиться с пустым именем (это
необходимо, если в базе данных не зарегистрировано ни
одного оператора).

Если логин указан, но пароль не указан, то утилита
попытается подключиться с пустым паролем.

Если указан логин и/или пароль, то утилита не будет
запрашивать логин и пароль у пользователя, а будет
использовать логин и пароль из командной строки.

Если не указан ни логин, ни пароль, то утилита будет
запрашивать логин и пароль у пользователя.

-txt - утилита выполнит экспорт/импорт в формате "Personnel TXT"
-xml - утилита выполнит экспорт/импорт в формате "XML"

-export экспортируемый_файл - утилита выполнит экспорт данных в
указанный файл. При необходимости
создания дополнительных файлов
(например, фотографий сотрудников), эти
файлы будут созданы в том же каталоге,
что и указанный файл.

-import импортируемый_файл - утилита выполнит импорт данных из ука-
занного файла. При необходимости чтения
дополнительных файлов (например, фото-
графий сотрудников), эти файлы будут
загружаться из того же каталога, что и
указанный файл, если в именах
дополнительных файлов каталог не указан.

-header "строка_заголовка" - опция, задающая строку заголовка
импортируемых данных в формате
"Personnel TXT".

Если эта опция не указана, то строка
заголовка является первой строкой
входного файла.

Если эта опция указана, то за ней должна
следовать строка заголовка в двойных
кавычках. Первая строка входного файла
будет считаться строкой данных.

-report "параметры отчета" - утилита выполнит формирование отчета и
экспортирует отчет в csv-файл.

После ключа -report в двойных кавычках должна быть указана строка
параметров отчета. Структура этой строки следующая:

"Report=название_отчета;File=имя_файла;Personnel=сотрудник_или_отдел1;Personnel=сотрудник_или_отдел2;...;Period=период;Header=Off"

Строка не должна содержать пробелов, если только эти пробелы не входят
в название отчета, сотрудника, отдела или имени файла.

Строка должна содержать параметры "Report=название_отчета" и
"File=имя_файла". Другие параметры не являются обязательными.

название_отчета - название отчета в "Золотых Воротах".

имя_файла - имя файла, в который будет записан
сформированный отчет в csv-формате

сотрудник_или_отдел1 - название сотрудника или отдела, по которому
формируется отчет.

Если указано несколько параметров
Personnel=сотрудник_или_отдел, то отчет будет
формироваться по указанным сотрудникам или
отделам.

Если указан параметр Personnel=All, то отчет
будет формироваться по всем сотрудникам или
отделам, имеющимся в базе данных "Золотых
Ворот".

период - строка вида yyyy-mm-dd hh:nn:ss..yyyy-mm-dd hh:nn:ss,
задающая дату и время начала и конца отчетного
периода.

Начало и конец разделены двумя подряд идущими
точками (..). Если время опущено, то считается,
что для начала периода задано начало суток
(0:00:00), а для конца периода задано окончание
суток (23:59:59).

Допускается также задавать период в виде даты
без времени. В этом случае будет формироваться
отчет за сутки (0:00:00..23:59:59).

Допускается задание одного из шести периодов
времени, автоматически привязываемого к текущей
дате:
- LastMonth - прошедший месяц
- CurrentMonth - текущий месяц
- LastWeek - прошедшая неделя
- CurrentWeek - текущая неделя
- LastDay или Yesterday - вчера
- CurrentDay или Today - сегодня

Header=Off - параметр для удаления строки заголовка из
выходного файла.

Допускается указание этого параметра в виде:
- Header=False
- Header=Disabled
- Header=0



Предыдущие версии программы обновляются либо установкой нового пакета, либо обновлением исполняемых файлов поверх установленных. Перед какими-либо действиями сильно рекомендую сделать резервную копию директории программы, а так же резервную копию базы утилитой GGBackUp.
Первый вариант у меня перезаписал файлы базы пустыми. Попытка восстановления из предварительно созданной резервной копии базы успехом не увенчалась - сообщалось об ошибках в разных файлах *.mdf. Перезапись файлов данных из предыдущей версии тоже ничего не дал. Хотя, возможно, я не все файлы заменил - с MSSQL не знаком. Возврат старой версии и обновление исполняемых файлов из новой - тщетно.
Помог второй вариант. Support ITVSystems выслали по почте набор новых исполняемых файлов, которые я записал в директорию со старой версией программы, и все заработало. Отдельное им спасибо за оперативность.

пятница, 27 марта 2009 г.

Удалить все файлы, кроме N самых свежих

Коротенькая строчка для очистки директории от старых файлов, оставляя только указанное количество самых свежих:


ls -rtpA --format=single-column | grep -v \/ | head -n -4 | while read var; do rm "$var"; done


Здесь 4 - количество оставляемых файлов. Директории и резервные копии файлов (~) игнорируются. В том числе обрабатываются файлы с пробелами в именах. Естественно, желательно в ls добавить рабочую директорию.

четверг, 26 марта 2009 г.

Swatch. Установка из исходников

Утилита Swatch (точнее, перловый скрипт) используется для наблюдением за лог-файлами формата syslog. После запуска он наблюдает за указанным лог-файлом и примеряет на него указанные регулярки. При совпадении swatch выполняет указанные действия.

Инсталляция:

  1. Скачиваем исходники.
  2. Распаковываем.
  3. Выполняем последовательность:
    perl Makefile.PL. Этот скрипт проверяет наличие в системе необходимых для программы модулей перла. Если какой-то из них не найден, выводится что-то типа
    Warning: prerequisite Date::Calc 0 not found at (eval 1) line 219. В этом случае необходимо выполнить команду  
    perl -MCPAN -e "install Date::Calc"
    (указав соответствующий модуль) для установки недостающего модуля.
    make
    make test
    make install
    make realclean
  4. Создаем файл /etc/swatch/messages.conf, из которого swatch будет брать регулярные выражения и команды для выполнения. Примерный формат таков:

    watchfor /SPAMMER/
    mail addresses=user\@domain:user\@domain,subject=Here\ is\ NewSpammer

    watchfor /sshd.accepted/
    mail addresses=user\@domain:user\@domain,subject=server\ user\ logged

  5. Добавляем строку запуска при старте системы в, например, /etc/rc.d/rc.local. Строка примерно такого вида:

    /usr/bin/swatch -c /etc/swatch/messages.conf -t /var/log/messages --daemon --pid-file /var/run/swatch.pid --script-dir /var/

среда, 25 марта 2009 г.

*nix. Внешний вид командной строки

Сменить внешний вид командной строки можно установкой переменной окружения prompt:
set prompt = "`id -un`@`hostname`:(`pwd`)#"

, например

Sendmail. Отправка почты через внешний SMTP-сервер

Для отправки всей почты через внешний SMTP-сервер нужно прописать:
в sendmail.cf: DSesmtp:[relay.somehost.ru]

Для отправки через резервны SMTP (в случае ошибки отправки штатным путем)
define(`SMART_HOST',`relay.somehost.ru')dnl

FEATURE(`mailertable', `hash /etc/mail/mailertable')dnl
/etc/mail/mailertable
domain1 esmtp:relay1.somehost.ru
domain2 smtp:[relay2.somehost.ru]

MySQL. Очистка бинарных логов

PURGE BINARY LOGS TO 'mysql-bin.010';
PURGE BINARY LOGS BEFORE '2008-04-02 22:46:26';

пятница, 20 марта 2009 г.

Проверка свободного места на FTP-сервере

Один из наших хостеров предоставляет место под резервные копии сервера на своем локальном FTP-сервере. В корне фтп-директории нашей учетки лежит файл quota.txt,в котором записаны занятый объем и доступный объем на сервере. Написал небольшой скриптец, который будучи запускаем по крону проверяет свободное место и отсылает сообщение в случае его недостаточности:




# //** 2009-03-20 17-19-21 Rett Pop [+]:
FTPPATH="ftp://user:pass@ftpserver:/quota.txt"
OUTFILE="/tmp/quota.txt"
WGET=/usr/local/bin/wget
AWK=/usr/bin/awk
GREP=/usr/bin/grep
CAT=/bin/cat
MAILER=/usr/bin/mail
MIN_MB=1000000 #in kilobytes
mailto="admin's email"
SRV_NAME="our server name"

#First downloads quota file
echo $WGET -O $OUTFILE $FTPPATH
if $WGET -O $OUTFILE $FTPPATH
then
DISK_AVAIL=`$CAT $OUTFILE | $AWK '{print $2-$1}'`
if [ $DISK_AVAIL -lt $MIN_MB ];then
echo "$SRV_NAME. Please clean up $SRV_NAME - $DISK_AVAIL KBytes left" > $MAILFILE
$CAT $MAILFILE | $MAILER -s "$SRV_NAME. Please clean up - $DISK_AVAIL KBytes left" $mailto
fi
else
#Sends alert about quotas file retrieve
echo $MAILER -s "$SRV_NAME. Error getting quotas file" $mailto
echo "$SRV_NAME. Error getting quotas file" | $MAILER -s "$SRV_NAME. Error getting quotas file" $mailto
fi

# Removes quotas file for actual information
rm $OUTFILE

среда, 18 марта 2009 г.

BSOD при печати в W2K3 Server x64

При печати на некоторые принтеры (по крайней мере от HP)  в среде Windows 2003 Server x64 она частенько падает на синенькое. Спасла установка для всех этих принтеров драйвера HP Laser Jet 4. 

Ubuntu 8.10. Пропал звук

После обновления системы Ubuntu пропал звук.Один из вариантов описан здесь:

  1. Остановить сервер pulseaudio.
  2. Запустить/перезапустить сервер Alsa.
  3. В Система/Настройки/Звук устройствами поставитьсоответствующие интерфейсы от Alsa.

вторник, 17 марта 2009 г.

Linux. Flip-Flop - смена MAC-адресов у сетевых интерфейсов

Настроил в сети отслеживание соответствия IP-адресов MAC-адресам посредством Slackware Linux и ARPWatch. Начали сыпаться сообщения о смене MAC-адреса одним из сетевых интерфейсов машины под Linux-ом. Выяснил, что:

  1. Оба инрефеса включены в одну сеть.
  2. При опросе IP-адресов в сети Linux отсылает отвечает от той сетевой карты, которая первая получила этот запрос. То есть система видит, что IP относится к ней, и отвечает с того интерфейса, на который был принят пакет проверки.
  3. ARPWatch репортует о смене MAC-адреса таким-то IP-адресом.

Отключается это поднятием флага arp_filet в /proc/sys/net/ip4v/conf/<соотв. интерфейс>.

понедельник, 16 марта 2009 г.

Arpwatch. Slackware. Сборка из исходников

Скачал с оффсайта исходники ArpWatch (утилита контроля за соответствием MAC-адресов IP-адресам в сети). Сборка и инсталляция прошли нормально. Но упоминаемые в сети ключи -s (отправка почты на указанные e-mail вместо root-а), -u (испльзование привилегий указанного пользователя вместо root-а) и еще несколькие в программе отсутствуют. На Sysadmins.SU Подсказали место, где лежат патчи, которые добавляют эти функции в программы.

Финальная строка запуска получилась такая:
arpwatch -i eth3 -n 192.168.0.0/24 -n 192.168.2.0/24 -e &

Пока только не разобрался куда же записываются логи программы...

понедельник, 9 марта 2009 г.

Photoshop + AV Broth. Puzzle Pro 2.2 + права пользователя

Ставил для Photoshop дополнение для нарезания паззлов AV Broth. Puzzle Pro 2.2. С правами пользователя плагинчик выбивает фотошоп. Под администратором работает нормально. Оказывается, плагин пишет свои данные рядом с основным файлом дополнения в Program Files/etc., куда, естественно, у пользователя прав на запись нет. После разрешения пользователю записывать данные в файлы
\Program Files\Adobe\Adobe Photoshop CS3\Plug-Ins\AV Bros Puzzle Pro 2.2\last.data
\Program Files\Adobe\Adobe Photoshop CS3\Plug-Ins\AV Bros Puzzle Pro 2.2\plugin.conf

дополнение нормально работает.

вторник, 3 марта 2009 г.

Internet Explorer. Открыть доступ только к некоторым сайтам

Для запрета/разрешения доступа к определенным сайтам в настройках ослика есть закладка "Содержимое". Там можно включить анализ оценки сайта с последующим (не)открытием. В списке "Разрешенные Узлы" (Содержимое/Настройка/Разрешенные узлы) можно явно указать разрешенные или запрещенные сайты. При этом поддерживаются знаки подстановки. По карйней мере звездочка. То есть, при указании разрешенного сайта yandex.ru на maps.yandex.ru попкасть не получится. А при указании *.yandex.ru - получится.