Янв 132015
 

Никто не любит рекламу в Интернете, в том числе и я. На ПК проблема элементарно решается путём установки правильного браузера (например, Firefox) и расширения Adblock или подобного, но на различных embedded-устройствах это не всегда возможно. Хотя у Firefox для Android и есть возможность поставить Adblock, его производительность не всегда комфортна.
Хорошим решением будет прописать в файл /etc/hosts на домашнем маршрутизаторе адрес 0.0.0.0 для различных рекламных и баннерных сетей и т.д. Тогда любое устройство, подключённое к домашней сети при попытке разрешить DNS-имя хоста с рекламой, будет получать адрес 0.0.0.0 и соединение не произойдёт. Вот эти замечательные товарищи создали гигантский список нежелательных хостов (на момент написания статьи более 13000 имён!). Мы его и возьмём, а заодно напишем скрипт для еженедельного обновления (чаще не имеет смысла). Continue reading »

Янв 152014
 

С точки зрения usability незаменимая утилита SQL*Plus представляет собой насилие над пользователем, и к использованию человеком, хоть раз увидившим нормальный софт, написанный с использованием библиотеки readline, совершенно непригодна.
К счастью, существует великолепная утилита rlwrap. Она создаёт обёртку из readline для SQL*Plus, что позволяет нормально редактировать команды, искать по истории команд, и даже использовать автодополнение!
Просто установить rlwrap мало, его надо правильно приготовить. Об этом и будет статья.

Готовим rlwrap для SQL*Plus.

Continue reading »

Ноя 142013
 

Обнаружил, что по какой-то причине агент Enterprise Manager Cloud Control 12c на одном из серверов БД не запускается. При попытке запуска командой

emctl start agent

в логе видим такие строки (выделил красным интересное): Continue reading »

Авг 232013
 

Распаковывал тут tar-архив на IBM AIX 7.1 и словил такую ошибку:

tar: 0511-169 A directory checksum error on media; -260707784 not equal to 33314.

Гуглением обнаружился интересный баг: Оказывается, стандартный IBM-овский tar имеет проблемы с длинными именами файлов, и поэтому IBM рекомендует (sic!) использовать GNU tar.
Т.е. заменяем при распаковке вот это:

tar -xf db3.tar

На

gtar -xf db3.tar

И всё прекрасно работает!

Адский ад, конечно.

Апр 182013
 

В силу некоторых неприятностей с дисками оказалась испорчена база и бэкап (да, я знаю, что это epic fail, но база не очень важная и когда её потерю заметили, бэкап уже устарел и его удалил скрипт).
Чудом сохранился только дамп, сделанный утилитой exp. Всё было бы неплохо, но этот дамп тоже оказался побитым. На импорте одной из таблиц сессия импорта зависала навечно. К счастью, эта таблица содержала маловажные данные (лог неких операций), от которых можно было безболезненно отказаться.
Итак, попробуем починить файл дампа.

Как мы знаем, классический exp сохраняет данные в полутекстовом формате. Поэтому ничто нам не помешает найти определение испорченной таблицы в файле и вырезать его и все данные этой таблицы из дампа, используя стандартные утилиты linux. Определение таблицы предваряется строкой:

TABLE "ACT_HIST"

Здесь ACT_HIST - имя нашей испорченной таблицы.

Итак, найдём номер строки в файле, где начинается наша таблица ACT_HIST: Continue reading »

Апр 032013
 

При работе с Oracle Forms 6-й версии пользователь получает такую ошибку:

FRM-10256 User is not authorized to run Forms Menu. 

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

Для того, чтобы от этой ошибки избавиться, надо выполнить следующие действия (рецепт для 6-х форм): Continue reading »

Дек 272012
 

Досталась мне игрушка недавно - Raspberry Pi. И вот возникла необходимость поменять там MAC-адрес. Прошивка самая обыкновенная, Raspbian “wheezy”, являющаяся обычным Debian-производным линуксом.
Суровые пользователи Gentoo знают, что MAC-адреса всех сетевых устройств прописываются в конфигурационном файле /etc/conf.d/net, но в Debian всё немножко хитрее. Continue reading »

Ноя 082012
 

На Хабрахабре есть отличная статья по теме, но у меня немного другая ситуация. В моём случае Zabbix работает под CentOS 6.2, а модем, архаичный Siemens TC35iT с последовательным портом, на другом хосте под управлением Solaris 10, обслуживая ещё одну систему мониторинга. Задача - настроить отправку длинных (более 160 символов) SMS-сообщений с linux-машины через этот модем, не переставляя его. Continue reading »

Апр 272012
 

У меня есть скрипт для резервного копирования сайта, который работает по расписанию и создаёт бэкап в виде нескольких tar-архивов в каталоге, скажем, /home/cube/backups. Задача - так же по расписанию заливать эти файлы на Яндекс.Диск.

Почему именно Яндекс.диск?

Continue reading »

Апр 172012
 

При использовании связки zabbix+orabbix для мониторинга ретро-баз (9i), в логе orabbix можно увидеть вот такие ошибки:

2012-04-17 18:24:01,157 [pool-1-thread-14] WARN Orabbix - Error while executing ->dbversion- on database ->mydb- Exception received ORA-02003: invalid USERENV parameter

2012-04-17 18:24:01,157 [pool-1-thread-14] ERROR Orabbix - Error on DBEnquiry on query=dbversion on database=mydb Error returned is java.lang.IllegalArgumentException: null value for key 'dbversion'

Причина такого непотребства в том, что запрос, получающий информацию о версии БД и компонентов, написан для БД 10-й версии и выше. Избавимся от этой проблемы: Continue reading »