Архив рубрики: Разное, мелочи

REUSEPORT

Что такое REUSEPORT? Если кратко, то в много поточном приложении позволяет каждому потоку напрямую привязаться к tcp socket’y (адрес:порт). Это позволяет быстрее принимать пакеты (без REUSEPORT пришлось бы получать пакеты через мастер-процесс).

В статье рассмотрим, как можно узнать/понять, использует ли ваше приложение REUSEPORT штатными средствами ОС. О том, как обстоит поддержка REUSEPORT в разных ОС написана очень неплохая статья, но вот касательно Solaris данные там устаревшие.

Читать далее

[nginx] Linux и reload: нюансы

Цитату взял с рассылки про nginx и привожу как есть:

С reload’ом на Linux’е имеется достаточно типичная проблема: в
отличие от других операционных систем, linux не позволяет
одновременно открыть listen-сокеты на *:80 и <ip>:80.

Читать далее

[atlassian] Добавить локального пользователя через базу

Все действия рекомендуется проводить при выключенных сервисах atlassian. Если время downtim’a критично, тогда сделать необходимые изменения и перезапустить сервис.

Confluence

— добавляем пользователя admin (ошибка возможна в случае дубликата id, соответственно нужно прописать уникальный) с паролем sphere:

insert into cwd_user(id, user_name, lower_user_name, active, created_date, updated_date, first_name, lower_first_name, last_name, lower_last_name, display_name, lower_display_name, email_address, lower_email_address, directory_id, credential) values (1212121, 'admin', 'admin', 'T', '2009-11-26 17:42:08', '2009-11-26 17:42:08', 'A. D.', 'a. d.', 'Ministrator', 'ministrator', 'A. D. Ministrator', 'a. d. ministrator', 'admin@example.com', 'admin@example.com', (select id from cwd_directory where directory_name='Confluence Internal Directory'), 'uQieO/1CGMUIXXftw3ynrsaYLShI+GTcPS4LdUGWbIusFvHPfUzD7CZvms6yMMvA8I7FViHVEqr6Mj4pCLKAFQ==');

insert into user_mapping values ('2c9681954172cf560000000000000001', 'admin', 'admin');

Читать далее

TRex — генератор трафика

Бесплатный stateful и stateless генератор клиентского и серверного трафика L4-L7, масштабируемый до цифр в 400 Гбит/сек на одном сервере. Данный инструмент может использоваться для тестирования и сравнения различных сетевых решений, включая и область кибербезопасности, — DPI, МСЭ, IPS, NAT, балансировщики нагрузки, кеширующие сервера.

Официальный сайт  https://trex-tgn.cisco.com

[Solaris] awk + regexp

Столкнулся с тем, что под Solaris awk не понимает нормально regular expressions. К примеру, квантор повторения {1,3} не работает. После гугления нашёл заметку:

The default awk on Solaris is old, broken awk which should never be used by anyone for any reason. nawk is much better than /usr/bin/awk but is still a very old, non-POSIX awk, and so does not support RE intervals. Almost any other awk will work. On Solaris if you don’t have and can’t install GNU awk then use /usr/xpg4/bin/awk as it’s very close to POSIX compliant and does support RE intervals.

В итоге, заработало в такой конструкции (gawk (gnu awk) + опция posix):

echo "test 1.1.1.1" | gawk --posix '{if ($2 !~ /^127.0.0.1/ && $2 ~ /^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]/) print $2 }'

[openvpn] Подмена шлюза для хоста

Не знал как назвать заметку, поэтому опишу суть: есть внешняя подсеть 1.1.1.0/24, которую нужно роутить через VPN. Но вот незадача, в этой же подсети находится сам VPN сервер, поэтому, если мы просто пропишем

push "route 1.1.1.0 255.255.255.0"
Читать далее

wim regexp

Формат регулярных выражений в wim’e немного отличается от привычный PCRE. И вот чем:

  • нужно экранировать скобки
  • переменные подстановки $1, $2 ,… заменены на \1, \2,…

Пример.

Выражение

:%s/\(\d\{1,3\}\.\d\{1,3\}\.\d\{1,3\}\.\d\{1,3\}\)/\1 port = 80/g

заменяет строку

XX.XX.XX.XX

на

XX.XX.XX.XX to any port = 80

Хотя в PRCE это выглядело б так:

(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1.3})/$1 port = 80/g

netutils-linux — утилита для мониторинга и тюнинга сетевого стека Linux

Представлен выпуск проекта netutils-linux 2.5.0, в рамках которого развивается набор утилит для мониторинга и тюнинга производительности сетевого стека Linux. Исходные тексты проекта написаны на Python (поддерживаются python 2.6+ и 3.4+) и поставляются под лицензией MIT.

Читать далее