Представим ситуацию: есть DPI которая блокирует напрямую соединение с openvpn сервером. Для обхода сооружаем такую схему: аутентифицируемся на прокси и после удачной аутентификации – подключаемся к серверу openvpn. В итоге: на сервер открыт только внешний порт 443 (прокси), а сам сервер openvpn слушает 127.0.0.1:1194.
Категорія: Misc, staff, other
cacti и mysql time zone
Так случилось, что нужно было перенести cacti на другой сервер. После этого cacti отказался обновлять данные на графиках. Просто пустые сетки и всё. После гугления, решил заглянуть в таблицу poller_time и увидел, что там время сдвинуто на 4 часа. И действительно, в my.cnf была строка:
default-time-zone='-4:00'
После недолгих гуглений нашлось просто решение: в самом верху файла /var/www/cacti/graph_image.php вставить строку:
Или на русском: “ssl рукопожатие не удалось”. Проблема заключается в том, что в новых версиях libnss3 не принимаются самоподписные сертификаты (selfsigned). На моей kubuntu 16 пришлось даунгрейдить 4 пакета до версии 3.15.4. Только после этого всё заработало. И так, вот эти пакеты:
ii libnss3:amd64 2:3.15.4-1ubuntu7 ii libnss3-1d:amd64 2:3.15.4-1ubuntu7 ii libnss3-nssdb 2:3.15.4-1ubuntu7 ii libnss3-tools 3.15.4-0ubuntu0.12.04.3
[nginx] FastCGI + keepalive
Вроде бы всё просто, но есть небольшой хак: вот такая конструкция не будет поддерживать keepalive:
location / {
...
fastcgi_pass 127.0.0.1:9000;
fastcgi_keep_conn on;
...
}
Для тех, кто решил обновится с 5.6 на 5.7 ждут “сюрпризы” в виде переработанного оптимизатора запросов. Что такое оптимизатор? Это “помощник”, который перед каждым выполнением запросов ищет путь “наилучшего” выполнения запроса. Все есть больше 10-ка различных параметров оптимизатора, которые можно включать/выключать, тем самым меняя логику исполнения запросов. Подробнее о них можно прочесть здесь.
Здесь буду писать о разного рода не стандартных ограничениях и как их решать.
1) Ограничение по user-agent’y:
nginx.conf:
http { ... map $http_user_agent $limit_bots { default ''; ~*(yandex|msnbot|yahoo) $binary_remote_addr; } limit_req_zone $limit_bots zone=bots:10m rate=40r/m; ... }
vhost.conf:
Эта опция в pf позволяет дублировать трафик, минуя таблицу маршрутизации. Синтаксис прост:
pass in|out on $ext_if dup-to ($dup_if $dup_addr) ...
где, $ext_if – интерфейс с которого снимать трафик, dup_if – интерфейс, на который пересылать трафик (находится на том же роутере, что и ext_if), dup_addr – IP-адрес хоста, куда будет дублироваться трафик (находится в той же подсети, что и dup_if).
Файловый менеджер SPRUT.io
Компания Beget перевела в разряд свободных проектов файловый менеджер SPRUT.io, изначально разработанного для использования в интерфейсе управления хостингом для управления файлами пользователя и их редактирования. Файловый менеджер построен с использованием клиент-серверной архитектуры и web-технологий, что позволяет использовать его для управления файлами на сервере из любой точки сети. Код открыт под лицензией GPLv3, серверные компоненты написаны на языке Python c использованием фреймворка Tornado. Доступен образ для быстрой установки в Docker.
Данный скрипт удаляет самый старый файл
find /path/to/dir -type f -exec ls -t {} + | awk '{w=NF?$NF:w} END{print w}' | xargs rm --
При использовании в скрипте, нужно экранировать плюс ‘+’
Если у вас на разделе миллионы файлов, то простым копированием это может занять очень много времени. Рекомендую копировать блочно (так же отображается процесс):
pv -tpreb /dev/sdc1 | dd of=/dev/sdb1 bs=32768 conv=noerror,sync
При этом, можете поэксперементировать с размером блока bs=32768 (больше/меньше, кратный 2, начиная с 512 байт)
где /dev/sdc1 – откуда копируем, /dev/sdb1 – куда копируем.