Рабочие заметки

Linux, сети и домашняя инфраструктура — коротко, чтобы не забыть.

ZFS scrub раз в месяц, а не раз в неделю

Год гонял scrub еженедельно на паре зеркал из SATA-дисков и в итоге отказался. На здоровом пуле недельный цикл ничего не находит, зато диски постоянно тёплые и слышно их из соседней комнаты.

0 3 1 * * /usr/sbin/zpool scrub tank

Раз в месяц ночью первого числа. За полгода ни одной ошибки контрольных сумм, а средняя температура упала на четыре градуса. Если пул из б/у дисков — оставлял бы две недели.

systemd-timer вместо cron, когда важен результат

У cron нет внятного ответа на вопрос «а прошлый запуск вообще удался?». У таймера есть: systemctl status покажет код возврата последнего запуска и весь вывод в журнале, без возни с перенаправлением в файл.

Плюс Persistent=true — если машина спала в момент срабатывания, задача выполнится сразу после загрузки. Для домашнего сервера, который выключается на ночь, это решающий аргумент.

Единственное, о чём стоит помнить: у таймера и сервиса должны совпадать имена, иначе нужен явный Unit=. Потратил на это полчаса.

Короткий TTL перед переездом

Банально, но каждый раз забываю. За сутки до смены A-записи ставлю TTL 300 секунд, после переезда возвращаю на 3600. Иначе часть резолверов держит старый адрес до полусуток, и ты сидишь и гадаешь, почему «у меня всё открывается, а у них нет».

dig +short A example.org @1.1.1.1
dig +short A example.org @8.8.8.8

Проверять обязательно с двух разных публичных резолверов — они обновляются вразнобой.

Swap на 2 гигабайта спасает сборку

На виртуалке с двумя гигабайтами памяти любая сборка из исходников рискует поймать OOM в самый неудобный момент. Файл подкачки почти не используется в обычной работе, но именно он даёт компилятору дожить до конца.

fallocate -l 2G /swapfile
chmod 600 /swapfile
mkswap /swapfile && swapon /swapfile

Не забыть строчку в /etc/fstab, иначе после перезагрузки сюрприз.