Обзор новинок #8: 27 августа — 3 сентября

Новые релизы за неделю — только то, что важно для сервера. vscode 1.136.0 nginx 1.31.5 — control API, predicate locations, ngx_http-модуль grafana v12.4.10 homepage v2.2.0 doggo v1.4.0 — bind резолверы к исходному адресу через -b keycloak 26.7.3 — фикс CVE-2026-35563 в LDAP-клиенте sing-box v1.14.0 loki v3.6.16 — флаг игнорировать пропавшие чанки при удалении логов immich v3.2.0-rc.0 bottom 0.14.9 — опция показывать нулевой сетевой трафик при старте #linux #sysadmin #releases

4 сентября 2026 г. · llexa

Proxmox #8: pvesr — репликация VM между нодами без shared storage

Shared storage (Ceph, NFS, iSCSI) — не всегда вариант, не каждая инсталляция тянет отдельный кластер хранения. pvesr реплицирует VM между нодами ZFS-снапшотами по расписанию — дешёвая замена shared storage для не самых критичных нагрузок. pvesr create-local-job 100-0 pve2 --schedule '*/15' # реплика VM 100 на pve2 каждые 15 минут pvesr status # последний снапшот, задержка pvesr disable 100-0 # остановить job, не удаляя Разница с HA-кластером на shared storage — окно потери данных равно интервалу репликации: упала нода между снапшотами — потеряны изменения за этот промежуток. pvesr не переключает нагрузку сам, после сбоя старт на целевой ноде — qm start 100 вручную. ...

3 августа 2026 г. · llexa

Vim с нуля #7: quickfix и ctags — навигация без LSP

LSP в vim — это coc.nvim и полноценный language server на каждый язык, но для быстрой навигации по проекту часто хватает связки попроще: quickfix list и ctags работают в любом окружении, без установки сервера. :grep -r "pattern" . заполняет quickfix через внешний grep; :copen открывает список, :cn / :cp — прыжок по совпадениям :make гоняет компилятор или линтер (задаётся через makeprg), ошибки попадают туда же ctags -R . строит файл тегов по всему проекту; Ctrl-] на имени функции — переход к определению, Ctrl-t — назад по стеку :tselect — если тег неоднозначен (несколько функций с одним именем), выбор вручную из списка #vim #linux

1 августа 2026 г. · llexa

restic: бэкапы с дедупликацией и шифрованием из коробки

borg дедуплицирует бэкапы, но требует SSH-доступа к хранилищу или локального пути. restic — та же дедупликация и шифрование, но из коробки говорит с S3, Backblaze B2, SFTP и локальным диском, без отдельного backup-сервера. # инициализация репозитория (тот же синтаксис для S3/SFTP) restic init --repo /mnt/backup/restic-repo # бэкап директории restic -r /mnt/backup/restic-repo backup /etc /var/lib/postgresql/data # снапшоты и восстановление restic -r /mnt/backup/restic-repo snapshots restic -r /mnt/backup/restic-repo restore latest --target /tmp/restore Пароль репозитория задаётся при init — без него бэкапы не восстановить, хранить его нужно отдельно. Дедупликация на уровне блоков: повторный бэкап после мелких правок в большом файле занимает не весь объём, а только изменённые куски. ...

25 июля 2026 г. · llexa

swapfile в Linux: своп без переразметки диска

Своп-раздел готовится заранее, при разметке диска. Забыли — на живой системе без LVM его так просто не добавить. swapfile проще: обычный файл на смонтированной ФС, без переразметки, без остановки сервисов. # файл на 4G (fallocate быстрее dd, но не работает на всех ФС — тогда dd if=/dev/zero) fallocate -l 4G /swapfile chmod 600 /swapfile mkswap /swapfile swapon /swapfile # постоянно — строка в /etc/fstab echo '/swapfile none swap sw 0 0' >> /etc/fstab # swappiness пониже для сервера с достаточным объёмом RAM — не уходить в своп раньше времени sysctl vm.swappiness=10 chmod 600 до mkswap — иначе любой локальный юзер прочитает файл свопа, а там может быть что угодно из памяти, вплоть до кусков секретов. На btrfs так не сработает: нужен chattr +C, отключение CoW, или отдельный раздел. ...

25 июля 2026 г. · llexa

siege и wrk: нагрузочное тестирование HTTP из терминала

Перед тем как отдавать сервис в прод, полезно прикинуть, сколько запросов в секунду он держит — без разворачивания JMeter или Gatling. siege и wrk — однобинарники, дают нагрузку из терминала за одну команду. # siege: 50 одновременных клиентов, 30 секунд siege -c 50 -t 30s http://localhost/ # wrk: 4 потока, 100 соединений, 30 секунд wrk -t4 -c100 -d30s http://localhost/ siege проще читается (concurrent users, availability, response time), wrk быстрее на высоких нагрузках за счёт своего event-loop на Lua-скриптах — можно писать кастомные сценарии запросов, не только GET на один URL. Для быстрой проверки “не упадёт ли nginx под пиковой нагрузкой” любой из двух хватает. ...

24 июля 2026 г. · llexa

age: современная замена gpg для шифрования файлов

gpg умеет всё — подписи, web-of-trust, keyserver’ы, десятки опций — но для простой задачи «зашифровать файл получателю» это избыточная сложность. age делает ровно одну вещь и без конфигов. age-keygen -o key.txt # Public key: age1qy... Шифрование по публичному ключу получателя, можно на нескольких сразу: age -r age1qy... -o secret.age file.txt age -r age1qy... -r age1zx... -o secret.age file.txt Расшифровка — своим приватным ключом: age -d -i key.txt secret.age > file.txt Если получателя нет и нужен просто пароль — симметричный режим без ключей вообще: ...

23 июля 2026 г. · llexa

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

Если на сервере уже стоит containerd (например, как часть Kubernetes-ноды), ставить рядом полный Docker ради привычного CLI избыточно — nerdctl даёт те же команды, но работает прямо через containerd, без своего демона. nerdctl run -d -p 8080:80 nginx nerdctl ps nerdctl build -t myapp . docker-compose.yml тоже читается как есть: nerdctl compose up -d Отдельно стоит rootless-режим — контейнеры без root на хосте, без suid-бинарников и без выхода из namespace как единственной защиты: ...

23 июля 2026 г. · llexa

DBA на минималках #5: pg_stat_activity

pg_stat_activity — представление с одной строкой на каждое соединение к базе: кто подключён, что выполняет прямо сейчас и сколько это уже длится. SELECT pid, state, now() - query_start AS duration, query FROM pg_stat_activity WHERE state != 'idle' ORDER BY duration DESC; Колонка state — главное, на что смотреть: active — запрос реально выполняется; idle — соединение открыто, но ничего не делает; idle in transaction — самое опасное значение, транзакция открыта и висит, держит блокировки и мешает autovacuum чистить мёртвые строки. ...

22 июля 2026 г. · llexa

Современные ФС #6: ZFS — RAIDZ

Зеркало (mirror) — 50% полезного места на N дисков. raidz экономнее: чётность распределена по всем дискам, как в RAID5; raidz2 — двойная чётность, переживает потерю двух дисков разом (аналог RAID6). zpool create tank raidz sda sdb sdc zpool create tank raidz2 sda sdb sdc sdd Целостность проверяется не fsck, а scrub — ZFS перечитывает блоки, сверяет контрольные суммы и чинит найденное за счёт избыточности: zpool scrub tank zpool status tank # прогресс и найденные ошибки Замена упавшего диска — без остановки пула: ...

22 июля 2026 г. · llexa