Tag Archives: linux

Bitrix, opcache и утечки памяти

Появилась задача разобраться, отчего некий самописный компонент битрикса, где в цикле выполняется охренеллиард однотипных запросов к базе данных, после обновления PHP с 7.1 на 7.2 внезапно начал падать то в пустой экран, то в классический Fatal error: Allowed memory size of … bytes exhausted. Continue reading

Posted in Софт | Tagged , | Leave a comment

FTP, passive mode и RHEL8

Мамонтовый протокол FTP предусматривает два режима работы для передачи данных – так называемые активный и пассивный режимы. Для активного режима требуется, чтобы у клиента был публичный IP-адрес и открытые порты, для пассивного – аналогичное должно быть сделано со стороны сервера. Удивительно то, что большинство современных инструкций по настройке vsftpd или proftpd предлагают просто выделить конкретный диапазон портов, прописать их в конфигурации FTP-сервера и разрешить к ним доступ в файрволе. Но зачем это делать, когда долгие годы существуют изощренные системы полностью автоматического разрешения доступа к портам при работе с FTP? А потому что по умолчанию они не работают. Continue reading

Posted in Софт | Tagged , | Leave a comment

Статическая сборка pdns_server

При ручной сборке в ./configure у PowerDNS Authoritative Server есть ключи –enable-static и –enable-static-boost, позволяющие собрать бинарники статически, поскольку не всегда есть время и возможности угадывать, что и, главное, каких именно версий окажется установлено или доступно к установке на целевой операционке. Если вам не повезло иметь операционку, где готового пакета с pdns не существует, а готовый к сборке чего попало сервер уже налажен.

Вот только при запуске успешно собранного бинарника можно увидеть ошибку pdns_server: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.26′ not found (required by pdns_server) Continue reading

Posted in Софт | Tagged , | Leave a comment

Рандомизация фраз на Roborock S50/S55

Roborock S5 – серия недорогих роботов-пылесосов с лидаром, входящая в категорию товаров для “умного дома” от Xiaomi. Дистанционное управление со смартфона и root-доступ ко встроенной операционке на базе Linux прилагаются. Continue reading

Posted in Софт | Tagged , | Leave a comment

linux: несколько IP на один NIC

Заметка, чтобы не забыть. Варварство без специфичных скриптов того или иного дистрибутива, с циничным пользованием deprecated утилит. Continue reading

Posted in Сеть и интернет | Tagged | Leave a comment

PPTP-клиент за NAT на основе Linux-сервера

Небольшая локальная сеть на несколько компьютеров получала доступ в интернет через сервер на базе CentOS 6 – обычным NAT маскарадингом через iptables. Обнаружилось, что в такой конфигурации по умолчанию невозможно поднять VPN-туннель PPTP (протокол – GRE) с компьютеров, находящихся за таким шлюзом. Continue reading

Posted in Сеть и интернет | Tagged , , | 1 Comment

icecast relay и редиректы

Сервер icecast может использоваться не только для организации вещания новых сетевых медиапотоков, но и для ретрансляции уже существующих. Источник исходного потока при этом может являться распределенной структурой других icecast-подобных серверов, в которых для распределения нагрузки на головном сервере может использоваться простой http-редирект (код 302) на дополнительные узлы.

Хотя relay-функциональность icecast и позволяет разбирать этот код и реагировать на него соответствующим образом, работает это не всегда. Continue reading

Posted in Сеть и интернет | Tagged , , | Leave a comment

Резервное копирование в WebDav на OpenWrt

Рассмотрим возможность создания резервного копирования в облачное хранилище WebDav на примере Яндекс.Диска при помощи виртуальной файловой системы davfs2, утилиты cadaver и небольшого PHP-скрипта. Continue reading

Posted in Сеть и интернет | Tagged , , | 3 Comments

PHP, SQLite и регистронезависимость

Несмотря на объявленную поддержку UTF, встраиваемая СУБД SQLite3 по умолчанию не умеет делать регистронезависимую сортировку, сравнение и операции по преобразованию строк над буквами, не входящими в английский алфавит. Для решения этой проблемы разработчики SQLite рекомендуют использовать расширение ICU, с подключением которого станет возможным выбирать различные кодировки и иметь возможность пользоваться регистронезависимыми операциями сравнения любых символов кроме латиницы. Вот только описаний, как это сделать для php-mod-sqlite3, найти толком нельзя, да и объем ICU превышает размер самой библиотеки SQLite! Для embedded-применений – например, в OpenWrt – такое не годится. Continue reading

Posted in Сеть и интернет | Tagged , , | Leave a comment

Автоматизация загрузки файлов на WebDav

Ранее на страницах этого сайта рассматривалась возможность монтирования облачных WebDav-хранилищ при помощи fuse-системы davfs2. Одним из ее недостатков был тот факт, что при любых операциях над файлами они неминуемо копировались сначала во временную директорию, а лишь затем перемещались в целевой каталог.

Альтернативой davfs2 для прямого получения или загрузки файлов в облачное хранилище является утилита cadaver. Однако, она предполагает интерактивное взаимодействие с пользователем, и использование ее в автоматизированных скриптах не представляется возможным. Обойти эту проблему можно при помощи утилиты empty, аналога expect для создания и взаимодействия с псевдотерминалами. Continue reading

Posted in Сеть и интернет | Tagged , , , | 1 Comment