Категорії
DataBases

[mysql] Правильно выставляем sql_mode в my.cnf

Сразу замечу, что официальной документации я не нашёл ни единого упоминания  о таком поведении. А оно заключается в следующем: что бы правильно выставить значение sql_mode в my.cnf, нужно поискать, ни где ли в других стандартных конфигах не упоминается ли? В моём случае главный конфиг был в /etc/my.cnf, и базу я стартовал именно с указанием этого конфига. Но! в папке с установленным дистрибутивом mysql был ещё один my.cnf (лежал он в /opt/mysql/mysql/my.cnf, то есть $MYSQL_HOME/my.cnf) в котором и была эта строка, которая перетирала любые правки, внесённые в /etc/my.cnf касательно sql_mode. Возможно это так же влияет и на другие переменные.

После комментирования строки, и выставление нужного значения в /etc/my.cnf (мне нужно было полностью отключить его), всё заработало как надо. Правильно нужно указать так:

sql_mode=

Категорії
FreeBSD Solaris

[ZFS] Замена сбойного диска сбойным

Не знаю, проявляется ли это на новых версиях ZFS, но достаточно интересный хак. И так, ситуация следующая: при замене диска в пуле, в процесс перестройки, выпал заменяемый диск. Тогда пул навсегда замирает в состоянии DEGRADED. Как быть? Вот здесь подсмотрел хак. Приведу цитатой:

echo zfs_no_scrub_io/W0t1 | mdb -kw

После этого надо дать resilver закончиться (он пройдёт достаточно быстро), и «zpool offline» сбойное устройство.

Потом поменять параметр назад:

echo zfs_no_scrub_io/W0t0 | mdb -kw

и «zpool replace» его работающим диском.

Принцип работы хака: в треде, где идёт resilver, мы пропускаем собственно часть, которая пишет данные; resilver заканчивается (естественно, на битый диск мы ничего не пишем, так что ошибок на нём не будет, но и данных тоже).

Для FreeBSD использовать соответственно

# sysctl vfs.zfs.no_scrub_io=1

и после окончанию работ выставить в 0.

Категорії
Solaris

Solaris verbose boot process

По умолчанию, Solaris при загрузке очень краток: 3 строки и хватит. Что бы “разговорить” его (по аналогии, как это в Linux/FreeBSD) можно пойти 2-мя путями: править grub или “true Solaris-way“. О втором методе ниже:

# /usr/sbin/svccfg -s system/svc/restarter:default
svc:/system/svc/restarter:default> addpg options application
svc:/system/svc/restarter:default> setprop options/logging = astring: verbose
svc:/system/svc/restarter:default> exit

После этого можно перегружаться и проверять: будет выводится каждая загруженная служба.

Категорії
FreeBSD Linux Solaris

Просмотр сетевых соединений с PID’ами процессов

FreeBSD

$ sockstat

Solaris

$ netstat -u

Linux

$ lsof -i

Категорії
Misc, staff, other Routers, GW, Internet

[pf] Правильно настраиваем dup-to

Эта опция в pf позволяет дублировать трафик, минуя таблицу маршрутизации. Синтаксис прост:

pass in|out on $ext_if dup-to ($dup_if $dup_addr) ...

где, $ext_if – интерфейс с которого снимать трафик, dup_if – интерфейс, на который пересылать трафик (находится на том же роутере, что и ext_if), dup_addr – IP-адрес хоста, куда будет дублироваться трафик (находится в той же подсети, что и dup_if).

Категорії
Misc, staff, other

Файловый менеджер SPRUT.io

Компания Beget перевела в разряд свободных проектов файловый менеджер SPRUT.io, изначально разработанного для использования в интерфейсе управления хостингом для управления файлами пользователя и их редактирования. Файловый менеджер построен с использованием клиент-серверной архитектуры и web-технологий, что позволяет использовать его для управления файлами на сервере из любой точки сети. Код открыт под лицензией GPLv3, серверные компоненты написаны на языке Python c использованием фреймворка Tornado. Доступен образ для быстрой установки в Docker.

Категорії
Misc, staff, other

[shell] Удаляем старые файлы

Данный скрипт удаляет самый старый файл

find /path/to/dir -type f -exec ls -t {} + | awk '{w=NF?$NF:w} END{print w}' | xargs rm --

При использовании в скрипте, нужно экранировать плюс ‘+’

Категорії
Misc, staff, other

Быстрая копия разделов диска

Если у вас на разделе миллионы файлов, то простым копированием это может занять очень много времени. Рекомендую копировать блочно (так же отображается процесс):

pv -tpreb /dev/sdc1 | dd of=/dev/sdb1 bs=32768 conv=noerror,sync

При этом, можете поэксперементировать с размером блока bs=32768 (больше/меньше, кратный 2, начиная с 512 байт)

где /dev/sdc1 – откуда копируем, /dev/sdb1 – куда копируем.

Категорії
Misc, staff, other

Reload HAProxy Config with Minimal Downtime

Restarting HAProxy using the default init scripts will kill any existing connections, and prevent any new connections while it restarts. With the init script restart method (eg ‘/etc/init.d/haproxy restart’), if there are any configuration errors, the service wont start up again. This might be fine for low volume sites, but if you are dealing with heavy traffic, you would want to reload the configuration with the smallest amount of downtime possible.

Категорії
FreeBSD

Freebsd: сборка порта с кастомными либами

# cd /usr/ports/devel/readline && LDFLAGS="-lncurses" make install clean

Домашняя страничка Andy
Записки молодого админа
Самостоятельная подготовка к Cisco CCNA
Самостоятельная подготовка к Cisco CCNP