logger и systemd-cat: пишем в journald из bash

Скрипт, пишущий статус в свой файл в /var/log/, — ещё одна точка для ротации и мониторинга. logger шлёт сообщение прямо в syslog/journald, под общую ротацию и journalctl. logger -t backup-script -p user.err "disk full" # тег + приоритет journalctl -t backup-script # только свои сообщения systemd-cat оборачивает целую команду — её stdout/stderr: systemd-cat -t rsync-job rsync -av /data /backup/ journalctl -t rsync-job --since "10 min ago" Из cron: job.sh 2>&1 | logger -t rsync-job — результат ищется одной командой, без grep по файлам в /var/log/. Приоритет (err, warning) фильтрует по важности и вешает алерты на ошибки, не трогая шум. ...

20 июля 2026 г. · llexa

nginx: усиление TLS без танцев с бубном

Дефолтный nginx с сертификатом Let’s Encrypt работает, но A на SSL Labs не даст — разрешены старые протоколы и слабые шифры. Правится парой директив в server. ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers HIGH:!aNULL:!MD5:!3DES; ssl_prefer_server_ciphers on; add_header Strict-Transport-Security "max-age=63072000" always; ssl_stapling on; # OCSP stapling — сервер сам ssl_stapling_verify on; # прикладывает статус сертификата После правки: nginx -t && systemctl reload nginx, проверка — ssl-labs.com/ssltest или openssl s_client -connect host:443 -status. HSTS с годовым max-age необратим: сломается TLS — браузеры откажутся ходить и по HTTP. Включать значение постепенно. ...

20 июля 2026 г. · llexa

Архиваторы #5: bzip2 — где он ещё оправдан

bzip2 — блочный архиватор на BWT (Burrows-Wheeler Transform), долго был стандартом для .tar.bz2. Сжимает лучше gzip, но однопоточный и заметно медленнее современных алгоритмов. bzip2 -9 file.bin # максимальное сжатие → file.bin.bz2 bzip2 -k file.bin # сжать, оставив оригинал pbzip2 -p4 -9 file.bin # многопоточно, формат тот же Сравнение на 1 ГБ логов: gzip -9 12с 380МБ bzip2 -9 34с 290МБ xz -6 22с 290МБ zstd -19 18с 310МБ Степень сжатия на уровне xz, но в разы медленнее и без многопоточности из коробки. Оправдан сегодня по инерции: legacy-пайплайны, ждущие .bz2, патчи ядра Linux. Для новых задач — zstd или xz. ...

20 июля 2026 г. · llexa

Будь добрее #8 - Он не вернулся из боя

Владимир Высоцкий написал «Он не вернулся из боя» летом 1969 года для фильма «Сыновья уходят в бой» — одну из самых пронзительных песен о фронтовой потере. Никакого пафоса: только тишина после боя и то, что вернувшийся вдруг остаётся один. Почему все не так, вроде все, как всегда, То же небо — опять голубое, Тот же лес, тот же воздух и та же вода, Только он не вернулся из боя. Мне теперь не понять — кто же прав был из нас В наших спорах без сна и покоя, Мне не стало хватать его только сейчас, Когда он не вернулся из боя. ...

19 июля 2026 г. · llexa

Уровни паники по цвету алерта в Zabbix

Zabbix красит триггеры по severity — но по факту это шкала внутренней паники дежурного, не важности инцидента. Not classified / Information — даже не открываешь вкладку, само пройдёт. Warning — открыл, подумал «ну ладно», закрыл обратно. Average / High — уже читаешь description триггера и ищешь runbook. Disaster — звонишь тому, кто «точно знает», даже если сейчас 3 часа ночи. Корреляция между severity и пульсом почти линейная — впору вешать vital-мониторинг на самого дежурного, не только на сервер. ...

19 июля 2026 г. · llexa

chroot и arch-chroot: смена корня файловой системы

chroot меняет корень файловой системы для процесса — программа видит /mnt/rescue как /, а всё, что выше, ей недоступно. Классический сценарий — сломанный загрузчик: грузимся с LiveCD, монтируем раздел и чиним систему изнутри неё. mount /dev/sda2 /mnt for d in dev proc sys; do mount --bind /$d /mnt/$d; done chroot /mnt /bin/bash grub-install /dev/sda update-grub exit Три bind mount руками — то, что забывают чаще всего: без /dev и /proc внутри chroot откажутся работать даже базовые команды. В Arch Linux это автоматизировал arch-chroot из пакета arch-install-scripts — та же задача одной командой: ...

18 июля 2026 г. · llexa

LVM с нуля: pvcreate, vgcreate, lvcreate, lvextend

Без LVM размер раздела фиксирован разметкой диска — расширить его без даунтайма сложно. LVM добавляет промежуточный слой: физические тома (PV) объединяются в группу (VG), из которой нарезаются логические тома (LV) — их можно растягивать, пока в VG есть свободное место. pvcreate /dev/sdb /dev/sdc # физические тома из целых дисков vgcreate data_vg /dev/sdb /dev/sdc # группа томов lvcreate -L 50G -n data_lv data_vg # логический том 50 ГБ mkfs.ext4 /dev/data_vg/data_lv Расширение на лету, когда место закончилось: ...

18 июля 2026 г. · llexa

nmcli: NetworkManager из терминала

На серверах с NetworkManager настройки сети живут не в /etc/network/interfaces, а в connection-профилях самого NetworkManager. nmcli — способ управлять ими из терминала, без риска потерять единственный SSH-сеанс на неудачный ifconfig. nmcli device status # список интерфейсов и их состояние nmcli con show # все сохранённые подключения nmcli con up "Wired connection 1" # поднять nmcli con down eth0 # погасить Статический IP без правки конфигов руками: nmcli con mod eth0 ipv4.addresses 192.168.1.50/24 nmcli con mod eth0 ipv4.gateway 192.168.1.1 nmcli con mod eth0 ipv4.dns "8.8.8.8 1.1.1.1" nmcli con mod eth0 ipv4.method manual nmcli con up eth0 Изменения применяются сразу после con up — перезагрузка не нужна. ...

18 июля 2026 г. · llexa

Афоризмы Мёрфи #6: Четвёртое следствие

Продолжаем разбирать классику Артура Блоха. После третьего следствия (“реализуется тот способ пойти не так, что причинит больше вреда”) — четвёртое: «Предоставленные сами себе, события имеют тенденцию идти от плохого к худшему» Это про естественную энтропию любой системы без сопровождения: диск, за которым не следят, не остаётся на прежнем уровне заполненности — он заполняется. Сертификат, о котором забыли, не продлевается сам. Прод без мониторинга не работает стабильно — он просто ещё не сломался достаточно заметно, чтобы кто-то это увидел. ...

18 июля 2026 г. · llexa

lynis: аудит безопасности сервера одной командой

lynis — сканер безопасности для Linux/Unix без агента и без сети: работает локально, читает конфиги и состояние системы. На выходе — не список уязвимостей, а числовой hardening index и причина по каждой находке. apt install lynis # или git clone для последней версии lynis audit system # полный прогон, ~200 тестов lynis show tests # список проверок с ID lynis audit system --cronjob # тихий прогон для cron Результат — в /var/log/lynis.log и /var/log/lynis-report.dat. В конце — блок Suggestions с ID вида SSH-7408 и кратким пояснением. Категории: SSH-конфиг, права на файлы, устаревшие пакеты, параметры ядра — первый прогон на свежем сервере обычно выдаёт полсотни рекомендаций. ...

17 июля 2026 г. · llexa