среда, 17 августа 2016 г.

nDPI, DKMS и здоровый сон сисадмина

DKMS (Dynamic Kernel Module Support) — шикарное решение, если требуемый модуль для ядра нельзя поставить и обновлять штатными средствами, но зато есть его исходники. Не требуется следить за обновлениями ядра и оперативно пересобирать нужный модуль или вовсе блокировать обновления ядра, чтобы ничего не отвалилось после очередного обновления.

Сначала устанавливаем dkms и другие необходимые пакеты:

$ sudo apt-get install dkms build-essential autoconf automake autogen libpcap-dev libtool xtables-addons-dkms pkg-config xtables-addons-source
Скачиваем исходники nDPI:
$ wget https://github.com/vel21ripn/nDPI/archive/netfilter.zip
Распаковываем скачанный архив в /usr/src:
$ sudo unzip netfilter.zip -d /usr/src
Переименовываем распакованную папку в ndpi-x.y.z, где x.y.z — версия модуля:
$ sudo mv /usr/src/nDPI-netfilter /usr/src/ndpi-1.7.0
Создаем файл dkms.conf в этой папке:
$ sudo tee /usr/src/ndpi-1.7.0/dkms.conf << EOF
# Версия модуля 
PACKAGE_VERSION="1.7.0"
# Название модуля в /usr/src
PACKAGE_NAME="ndpi"
# Папка для компиляции
BDIR="\${dkms_tree}/\${PACKAGE_NAME}/\${PACKAGE_VERSION}/build"
# Аргументы для make 
ARGS="-C \${kernel_source_dir} SUBDIRS=\${BDIR} M=\${BDIR}/ndpi-netfilter/src"
# После компиляции созданный модуль перемещается туда, где DKMS может его найти
MAKE[0]="make \${ARGS} modules ; find \${BDIR} -name '*.ko' -exec mv -v {} \${BDIR} \;"
CLEAN="make \${ARGS} clean"
# Название модуля ядра
BUILT_MODULE_NAME[0]="xt_ndpi"
# Папка, где обычно устанавливается модуль в ядре
DEST_MODULE_LOCATION[0]="/extra/"
# Не пересобирать initrd ядра
REMAKE_INITRD="no"
# Установка модуля после компиляции
AUTOINSTALL="yes"
EOF
Теперь компилируем и устанавливаем библиотеку nDPI
$ cd /usr/src/ndpi-1.7.0
$ sudo ./autogen.sh
$ sudo sh -c './configure && make'
$ cd /usr/src/ndpi-1.7.0/ndpi-netfilter
$ sudo make install
После чего в DKMS добавляем запись о нашем модуле:
$ sudo dkms add -m ndpi -v 1.7.0
Собираем модуль из исходников:
$ sudo dkms build -m ndpi -v 1.7.0
Собранный модуль устанавливаем папке /dkms/:
$ sudo dkms install -m ndpi -v 1.7.0

пятница, 22 июля 2016 г.

Приложение для формирования алкогольных деклараций

Формирование алкогольных деклараций по формам №11 и №12 из файла в формате CSV для Федеральной службы по регулированию алкогольного рынка РФ.

Использован фреймворк Qt5. Сразу признаюсь, что в исходном коде творятся страх и ужас без поясняющих комментариев. Теоретически кроссплатформенный и когда-то даже собирался на платформе Windows XP. Декларации формируются в формате Декларант-Алко 4.31 и успешно загружаются в сервис services.fsrar.ru (в том числе и пустые (нулевые) декларации).

Умеет:

  • Импорт данных из CSV-файла.
  • Импорт остатков на начало периода из CSV-файла.
  • Редактирование данных в таблице.
  • Для удобства редактирования в таблице с данными реализован простой калькулятор.
  • Сохранение и загрузка данных.
  • Формирование деклараций по формам №11 и №12.

Распространяется под лицензией GPL3.

Исходные коды размещены по адресу: https://github.com/tacitus-def/alko-decl-helper

среда, 8 июля 2015 г.

Как удалить дубликаты в истории bash?

Добавляем строку в ~/.bashrc, чтобы пропускать повторяющиеся команды

export HISTCONTROL=erasedups

Удаляем дубликаты в истории

$ history -a; awk '!x[$0]++' ~/.bash_history > ~/.tmp && mv ~/.tmp ~/.bash_history;

вторник, 10 декабря 2013 г.

Установка параметров загрузки ядра Linux с помощью Grub

  1. В grub до версии 0.97 включительно
    В файле «/boot/grub/menu.lst» найти строку, начинающуюся с «# kopt=» и дописать в её конец через пробел новый параметр:
    # kopt=root=/dev/sda1 ro newparameter=newvalue

    В grub2 до версии 1.99 включительно
    Добавить (изменить) переменную «GRUB_CMDLINE_LINUX_DEFAULT» в файле «/etc/default/grub» и вписать через пробел новый параметр, как в примере:
    GRUB_CMDLINE_LINUX_DEFAULT="quiet newparameter=newvalue"
  2. Далее обновить grub командой:
    $ sudo update-grub

четверг, 28 ноября 2013 г.

Простой секундомер с функцией ведения журнала времени.

Возможности:
• Миллисекундная точность.
• Отображение общего времени и времени после последнего события.
• Ведение журнала времени (событий).
• Экспорт в файл CSV.
• Сброс таймера с помощью аппаратной кнопки увеличения громкости.
• Быстрое создание события с помощью аппаратной кнопки уменьшения громкости.
• Редактирование сохраненных записей.
• Возможность держать экран включенным.
• Работа в фоновом режиме.

https://play.google.com/store/apps/details?id=pro.fossa.apps.timer


вторник, 12 ноября 2013 г.

Переадресация некоторых портов в VoIP-шлюзе Audiocodes MP-202

Чтобы в VoIP-шлюзе Audiocodes MP-202 переадресовать порты 80, 8080 или 443 на сервер внутри локальной сети, кроме соответствующих настроек в разделе «Переадресация портов», в разделе «Системные настройки» требуется изменить совпадающие порты для удаленного управления.