vnstat: история трафика без Grafana

nethogs и iftop показывают трафик здесь и сейчас, но не отвечают на вопрос “сколько утекло за сутки/месяц”. vnstat работает как демон в фоне, копит статистику по интерфейсам и хранит её после перезагрузки — без полноценного стека мониторинга. apt install vnstat # демон стартует сам и начинает копить статистику systemctl status vnstat # общая сводка по всем интерфейсам vnstat # по часам / дням / месяцам vnstat -h vnstat -d vnstat -m # live-график в реальном времени vnstat -l -i eth0 Конфиг — /etc/vnstat.conf: там задаются интерфейсы, единицы измерения и глубина хранения истории. ...

10 июля 2026 г. · llexa

Афоризмы Мёрфи #5: Третье следствие

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

10 июля 2026 г. · llexa

Новые версии: 3 июля — 10 июля

Новые релизы за неделю — только то, что важно для сервера. prometheus v3.5.5 — [SECURITY] UI: обновили sanitize-html до v2.17.5, закрыли CVE-2026-53606. keycloak 26.7.0 — новые возможности для пользователей и администраторов Keycloak. syncthing v2.1.2 — поддержка HTTP/HTTPS-прокси с CONNECT, в дополнение к существующему SOCKS. patroni v4.1.4 — плановый релиз с фиксами. alertmanager v0.33.1 — фикс отсутствующего поля notification_reason в webhook-документации. immich v3.0.1 — фикс бага с альбомами, не отображавшимися в мобильном приложении. skim v5.0.0 — крупный релиз после v4: добавлена поддержка Windows. #linux #sysadmin #releases

10 июля 2026 г. · llexa

age: простое шифрование файлов вместо gpg

gpg для разового шифрования файла — это ключи, keyring и десяток флагов, о которые легко запнуться. age решает ту же задачу без веба доверия: ключ — одна строка, шифрование — одна команда. age-keygen -o key.txt # Public key: age1ql3z7hjy54pw3hyww5ayyfg7zqgvc7w3j2elw8zmrj2kg5sfn9aqmcac8p age -r age1ql3z7hjy54pw3hyww5ayyfg7zqgvc7w3j2elw8zmrj2kg5sfn9aqmcac8p \ -o backup.tar.age backup.tar age -d -i key.txt -o backup.tar backup.tar.age # симметричный вариант с паролем, вообще без ключей age -p -o secret.age secret.txt Формат бинарный и компактный, ключи можно хранить прямо в .ssh/ (age шифрует и на существующий ssh ed25519-ключ через ssh-to-age) — удобно для бэкапов в dotfiles-репозиториях, где полноценный gpg-keyring избыточен. ...

9 июля 2026 г. · llexa

nerdctl: docker-совместимый CLI поверх containerd

Если на сервере уже крутится Kubernetes или containerd сам по себе, держать вдобавок docker-демон — лишняя сущность. nerdctl даёт тот же синтаксис, что docker, но говорит напрямую с containerd. curl -LO https://github.com/containerd/nerdctl/releases/latest/download/nerdctl-full-2.0.0-linux-amd64.tar.gz tar Cxzf /usr/local nerdctl-full-2.0.0-linux-amd64.tar.gz nerdctl run -d --name web -p 80:80 nginx nerdctl compose up -d # docker-compose.yml работает как есть alias docker=nerdctl Из коробки есть то, чего у docker нет: rootless без отдельной установки и lazy-pulling образов через stargz (контейнер стартует раньше, чем образ скачался целиком). Состояние живёт в неймспейсах containerd (nerdctl -n k8s.io ps = вид Kubernetes) — к этому надо привыкнуть. ...

9 июля 2026 г. · llexa

tmux+SSH своими руками: DIY-версия без Rust

За две недели разобрали ws и аналоги (tmuxinator, tmuxp, sesh) — все требуют бинарник или Python-пакет. Если серверов немного, результат собирается из ~/.ssh/config и десятка строк bash. #!/usr/bin/env bash set -euo pipefail hosts=$(awk '/^Host / && $2 !~ /\*/ {print $2}' ~/.ssh/config) for h in $hosts; do sess=$(ssh -o ConnectTimeout=2 "$h" tmux ls 2>/dev/null || true) [ -n "$sess" ] && printf "%-15s %s\n" "$h" "$sess" done Подключение — через fzf: target=$(bash list.sh | fzf | awk '{print $1}') [ -n "$target" ] && ssh -t "$target" tmux attach Нет SQLite-кэша и git-статуса — на десятке хостов опрос занимает пару секунд. Разрастётся до полусотни — смысл смотреть на ws. ...

9 июля 2026 г. · llexa

parted и gdisk: разметка GPT-дисков

MBR ограничен 2 ТБ на диск и 4 основными разделами — на современном железе стандарт давно GPT. parted работает и неинтерактивно (одной командой), и в консольном меню; gdisk — интерактивный аналог fdisk, но именно для GPT. Разметка через parted одной командой: parted /dev/sdb mklabel gpt parted /dev/sdb mkpart primary ext4 0% 100% parted -l Через gdisk — интерактивно: n создать раздел, p показать таблицу, w записать изменения: gdisk /dev/sdb Перед разметкой продакшен-диска — бэкап таблицы разделов, чтобы откатиться при ошибке: ...

8 июля 2026 г. · llexa

PostgreSQL: pg_stat_statements — статистика по запросам

pg_stat_statements — расширение, которое собирает статистику по каждому нормализованному запросу на сервере: сколько раз вызван, суммарное и среднее время выполнения, сколько строк вернул. Без него узкие места ищутся вслепую по логам. Включить: добавить в postgresql.conf и перезапустить кластер, затем создать расширение: shared_preload_libraries = 'pg_stat_statements' CREATE EXTENSION pg_stat_statements; Топ-10 самых тяжёлых запросов по суммарному времени: SELECT query, calls, total_exec_time, mean_exec_time FROM pg_stat_statements ORDER BY total_exec_time DESC LIMIT 10; Сбросить накопленную статистику: SELECT pg_stat_statements_reset();. Для учёта времени на дисковый I/O отдельно от CPU включи track_io_timing = on. ...

8 июля 2026 г. · llexa

tmux-session managers: чем отличаются аналоги tmux-workbench

У tmux-workbench (ws) есть соседи по нише — но ни один не индексирует сессии сразу на нескольких серверах через SSH с git-контекстом. tmuxinator — YAML-сессии, но шаблон, не живые tmuxp — то же самое, локально, без TUI tmux-resurrect — save/restore, локально, плагин sesh — TUI+fzf, локально, без SSH/git smug — YAML-команды, без remote-индекса Все решают часть задачи — сохранить сессию или быстро переключиться fzf’ом. SQLite-индекс сразу по всем серверам с git-веткой и dirty-статусом — фича, которой здесь больше ни у кого нет. ...

8 июля 2026 г. · llexa

Современные ФС #4: ZFS — основы

ZFS сочетает менеджер томов и файловую систему в одном слое — вместо связки mdadm + LVM + ФС работаешь с одним zpool. Каждый блок данных хранится с чексуммой, поэтому битые копии на диске обнаруживаются сами, без ручных сверок. Создать пул из зеркала двух дисков и датасет со сжатием: zpool create tank mirror /dev/sdb /dev/sdc zfs create -o compression=lz4 tank/data zfs list Проверить состояние пула и целостность данных: zpool status tank zpool scrub tank scrub читает все блоки и сверяет чексуммы — если на зеркале найдена ошибка, ZFS чинит блок автоматически со второй копии. На Debian/RED OS ставится пакетом zfsutils-linux (DKMS-модуль, не в mainline ядре из-за лицензии CDDL). ...

8 июля 2026 г. · llexa