вторник, 28 ноября 2017 г.

logback.xml с периодическим автоматическим сканированием параметров

Пример "logback.xml" с автосканированием параметров журнализации через заданный период времени (автосканирование регулируется параметрами "scan" и "scanPeriod"):

<?xml version="1.0" encoding="UTF-8"?>
<!--Конфигурирование логера с помощью внешнего XML-файла, подробности см. на logback.qos.ch-->
<configuration scan="true" scanPeriod="120 seconds">
    <!--Возможные значения уровня журнализации: DEBUG, INFO, WARN, ERROR, FATAL, OFF-->
    <!--Параметры журнализации в консоль-->
    <appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>INFO</level><!--Уровень журнализации сервера приложений в стандартный поток вывода-->
        </filter>
        <encoder>
            <charset>Cp866</charset><!--Кодировка (Cp866,Cp1251,KOI8_R,ISO8859_5,UTF-8)-->
            <pattern>%d{dd.MM.yy HH:mm:ss.SSS},%t,%p,%c{0},%m%n</pattern>
        </encoder>
    </appender>

    <!--Параметры журнализации в файл-->
    <appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>TRACE</level><!--Уровень журнализации сервера приложений-->
        </filter>
        <append>true</append>
        <File>azk2.log</File><!--путь к файла и имя файла лога-->
        <encoder>
            <charset>Cp1251</charset><!--Кодировка (Cp866,Cp1251,KOI8_R,ISO8859_5,UTF-8)-->
            <pattern>%d{dd.MM.yy HH:mm:ss.SSS},%t,%p,%c{0},%m%n</pattern>
        </encoder>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <FileNamePattern>log/azk2log%d{yyyy-MM-dd }.%i.log.zip
            </FileNamePattern><!--путь к файлу и имя файла, используемое для сохранения архивов логов-->
<maxHistory>30</maxHistory> <!--колличество дней в архиве-->
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>300MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
    </appender>

    <root level="TRACE">
        <appender-ref ref="stdout"/>
        <appender-ref ref="file"/>
    </root>


    <!--Параметры журнализации в файл конкретного класса-->
    <!--<appender name="classappender" class="ch.qos.logback.core.rolling.RollingFileAppender">-->
        <!--<File>azk2class.log</File><!–путь к файла и имя файла лога–>-->
        <!--<encoder>-->
            <!--<charset>UTF-8</charset><!–Используемая кодировка для вывода в файл (Cp866,Cp1251,KOI8_R,ISO8859_5,UTF-8)–>-->
            <!--<pattern>%d{dd.MM.yy HH:mm:ss.SSS},%t,%p,%c{0},%m%n</pattern><!–формат вывода–>-->
        <!--</encoder>-->
        <!--<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">-->
            <!--<!–Размер "револьверного" буфера архивов логов. При формировании–>-->
            <!--<!–нового архива лога старые файлы будут увеличивать–>-->
            <!--<maxIndex>5</maxIndex>-->
            <!--<FileNamePattern>/log/azk2classlog.%i.log.zip-->
            <!--</FileNamePattern><!–путь к файлу и имя файла, используемое для сохранения архивов логов–>-->
        <!--</rollingPolicy>-->
        <!--<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">-->
            <!--<MaxFileSize>100MB</MaxFileSize><!–размер файла при привыщение которого происходит архивация–>-->
        <!--</triggeringPolicy>-->
    <!--</appender>-->
    <!--<!–указываем класс для которого хотим изменить уровень логирования–>-->
    <!--<logger name="com.bssys.server.invocation.Server" level="DEBUG">-->
        <!--<appender-ref ref="classappender"/>-->
    <!--</logger>-->
</configuration>


Примечания:
в этой строке настройки
            <FileNamePattern>log/azk2log%d{yyyy-MM-dd }.%i.log.zip
            </FileNamePattern><!--путь к файлу и имя файла, используемое для сохранения архивов логов-->
добавлено ".log" - чтобы в архивы револьверного буфера логи попадали с расширением ".log" (иначе они архивировались без него).

пятница, 17 ноября 2017 г.

В чем ценность блокчейн-технологии?

См "Сказка про Блокчейн. Несокрушимый Сундук"

showme_webapps_url.bat

Батник открывает текстовый файл, в котором указан адрес страниц web-приложений, которые запущены текущим Tomcat (работает только локально на WEB-сервере) (положить батник нужно в корень папки Tomcat) (положить сюда:
<tomcat>/
и батник будет проверять папку
<tomcat>/webapps/
):
@echo off
setlocal EnableDelayedExpansion
set adr_begin=https://localhost:23991/
set output_file=%TEMP%\tomcat_webaddresses.txt
if exist %output_file% del %output_file%
for /F %%a in ('dir /B /A:D ..\webapps') do echo %adr_begin%%%a>> %output_file%
if exist %output_file% (start %output_file%) else (echo Папка webapps пуста && pause)

Что нужно доработать?
- Нужно реализовать автоматический анализ файла
<tomcat>/conf/server.xml
сейчас сделана "заглушка" в коде - просто вручную прописан номер порта "23991" в строке №3.
- сделать версию для Linux (когда возникнет необходимость).

вторник, 14 ноября 2017 г.

[одна из причин] ORA-12541: TNS:no listener

После восстановления сервера СУБД Oracle с сохранением базы данных (т.е. были сохранены все табличные пространства и схемы в них) появилась следующая проблема:
- sqlplus открывался успешно;
- IDE к этому серверу с удаленных рабочих мест открывались успешно;
- impdp (утилита импорта) выдавала ошибку:
UDI-12541: operation generated ORACLE error 12541
ORA-12541: TNS:no listener

Причина: разные значения параметра HOST в файлах:
cat $ORACLE_HOME/network/admin/tnsnames.ora:
# tnsnames.ora Network Configuration File: /mnt/hd2tb/oracle_ee/product/11.2.0.4/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.

ORACL11B =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ORACL11B)
)
)

cat $ORACLE_HOME/network/admin/listener.ora:
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.146.9)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)

ADR_BASE_LISTENER = /mnt/hd2tb/oracle_ee

После уравнивания значений проблема решилась.

MS Skype For Business (отключение Ctrl+Enter)

Если вас напрягает комбинация клавиш Ctrl+Enter в MS Skype For Business, которая запускает звонок собеседнику в окне переписки, тогда прочтите письмо дальше.
После того, как вы примените «Disable_CtrlEnter_SkypeForBusiness.reg» (во вложении), то нажатие Ctrl+Enter в окне переписки не будет ничего делать.

Инструкция:
1) Примените «Disable_CtrlEnter_SkypeForBusiness.reg»;
2) Перезагрузите компьютер.

Disable_CtrlEnter_SkypeForBusiness.reg:
Windows Registry Editor Version 5.00

;Для MS Office 2010
[HKEY_CURRENT_USER\Software\Policies\Microsoft\Office\14.0\Lync\DisabledShortcutKeysCheckBoxes]
"CtrlEnter"="13,8"
"CtrlShiftEnter"="13,12"

;Для MS Office 2013
[HKEY_CURRENT_USER\Software\Policies\Microsoft\Office\15.0\Lync\DisabledShortcutKeysCheckBoxes]
"CtrlEnter"="13,8"
"CtrlShiftEnter"="13,12"

;Для MS Office 2016
[HKEY_CURRENT_USER\Software\Policies\Microsoft\Office\16.0\Lync\DisabledShortcutKeysCheckBoxes]
"CtrlEnter"="13,8"
"CtrlShiftEnter"="13,12"

понедельник, 13 ноября 2017 г.

2018-11-08

Распределение новых записей по:
- АЦК-Ф Web;
- АЦК-БК;
- АЦК-Т;
- ЭП;
- ГИС ГМП;

I - Blknko;
II - Arshtv.

Письма о выпуске патчей по:
- АЦК-Ф (+модули, +док);
- АЦК-Т;
- АЦК-БК;
Arshtv (контролирует Brzv, Kreev).

Письма о выпуске патчей по:
- СОФИТ;
- UfebsScript;
- FormatFK;
- и др.скрипты по AZKExchange;
Sprnva (заместитель Arshtv).

Письма о выпуске патчей по:
- Отчетам;
Zgda (заместитель Arshtv).

Зависимости по отпускам:
Blknko - Arshtv;
Sprnva - Brzv;
Sprnva - Zgda;
Brzv - Kreev.

Ключевые по направлениям сопровождения:
ЭП: Blknko, Arshtv, Brzv;
Отчеты: Zgda, Sprnva, Rktnsk;
СОФИТ, Exch: Sprnva, Brzv.

АЦК-Т: Blknko, Arshtv;
АЦК-БК: Blknko, Arshtv.

Восстановление DBSERVER

Причина:
частично вышел из строя HDD-160GB, на котором была установлена ОС.
Разбираться и проверять времени не было, поэтому просто заменили его на другой HDD-160GB.

Перед переустановкой ОС сохранить копии:
/etc/fstab
/etc/samba/smb.conf
/etc/sysconfig/vncservers
/etc/mdadm.conf

db_informer расположен в [HDD 2TB]/db_informer/;
distr расположен в [HDD 2TB]/distr/;
0bmenka расположен в [HDD 2TB]/0bmenka/;
oracle расположен [RAID-0 из двух HDD-1TB]/:
- oracle_ee/;
- oraInventory/.
(Директории Oracle нужно переместить в другое место, затем установить Oracle в те же папки, затем остановить его и заменить директории на перемещенные)

ОС Oracle Enterprise Linux 5.11 x64
При установке:
- SELinux - disabled;
- KEDump - disabled;
- Firewall - disabled.

После установки:
yum install samba
затем заменить
/etc/samba/smb.conf
/etc/sysconfig/vncservers
/etc/mdadm.conf (заменять его не пришлось, пока не понял почему - ОС каким-то образом сама нашла RAID-0, сама его собрала, мне оставалось его только смонтировать)

После подачи Интернет:
yum автоматически скачает обновленный образ загрузки (я пока не знаю, как это отключить), но этот обновленный образ приводит к ошибке (я пока тоже не знаю как это исправить), поэтому в указанном файле нужно будет в параметре "default" указать пункт меню, который отвечает за загрузку прежнего образа:
/etc/grub.conf

Текущие точки монтирования (их и нужно придерживаться)
[root@dbserver38 /]# mount
/dev/mapper/VolGroup00-LogVol00 on / type ext3 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
/dev/sdd1 on /boot type ext3 (rw)
tmpfs on /dev/shm type tmpfs (rw)
/dev/sdc1 on /mnt/diska type ext3 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
/dev/md0 on /mnt/hd2tb type ext4 (rw,noatime,nodiratime,max_batch_time=0,nobarrier)

Дополнительно:
- оказалось, что раздел с RAID-0 (/dev/md0) содержит ошибки, поэтому лечим их ("до монтирования"): fsck.ext4 -a /dev/md0
- не поднялся OEM - нужно пересоздать репозиторий (но это в нерабочее время):
1) emca -deconfig dbcontrol db -repos drop
2) emca -config dbcontrol db -repos create

grub.conf

dbserver:
загрузчик GRUB.
После автоматического обновления ПО в grub.conf появилась новая запись о свежей версии образа для загрузки, но она загружается с ошибками.
Чтобы вернуть прежний образ загрузки изменил:
grub.conf:
default=1 (было 0)
(чтобы загружался этот пункт меню)
title Oracle Linux Server-base (2.6.18-398.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-398.el5 ro root=/dev/VolGroup00/LogVol00 rhgb quiet numa=off transparent_hugepage=never
initrd /initrd-2.6.18-398.el5.img

пятница, 10 ноября 2017 г.

GRUB, первое знакомство

В консоли GRUB:
- "cd /" - показывает файлы в текущей директории (типа "ls");
- кнопка "tab" показывает список возможных команд.

вторник, 7 ноября 2017 г.

Проверка корректности файла со штампом времени

Бывают ситуации, когда нужно проверить корректность файла со штампом времени, либо "посмотреть, что у него внутри". Например, TSP-сервер, вроде бы, работает, даже формирует файл со штампом времени, но при этом сервис, который использует проверку штампа времени выдает ошибку.

Для этой цели можно использовать TSP-клиент.
Пример:
1) скачиваем файл со штампом времени с тестового сервера КриптоПро по адресу http://www.cryptopro.ru/tsp/tsp.srf или https://www.cryptopro.ru/tsp/tsp.srf.
2) с помощью tsputil считываем его:
tsputil stampinfo tsp.srf
Пример результата должен быть таким:
C:\Program Files (x86)\Crypto Pro\TSP\tsputil.exe stampinfo tsp.srf
Policy ID: 1.2.643.2.2.9
Serial Number: 4B7A 0321 0000 0000 0000 0003
Accuracy (microseconds): -1
Ordering: 0
HasNonce: 1
TSA:
Stamp time: 002CDBD0
Hash algorithm: 1.2.643.2.2.9, ALG_ID: 0x801E
Hash size: 32
Hash: 3B76 3FD5 1ABA CCF3 0D0C 00E3 A916 A3DC 6147 480A CB07 5127 DAD1 5013 672C
B54E
Certificate of signer of time-stamp: NOT found.
Certificates from time-stamp (0):

Потоки ввода-вывода

https://ru.wikipedia.org/wiki/Перенаправление ввода-вывода

Дескриптор Название Описание
0 stdin Стандартный ввод
1 stdout Стандартный вывод
2 stderr Стандартный вывод ошибок

Пример вывода только ошибок при выполнении программы:
nslookup mail.ru999 2> only_errors.txt


Спасибо Юрину В.

Архив