yq: YAML в командной строке

yq (mikefarah/yq) — портативный процессор YAML/JSON/XML, синтаксис близок к jq. Установка: скачать бинарник или snap install yq. Читать поля: yq '.services.nginx.image' docker-compose.yml yq '.metadata.name' pod.yaml Перебрать список: yq '.services[].image' docker-compose.yml Редактировать на месте (-i): yq -i '.version = "2.1"' Chart.yaml yq -i '.replicas = 3' deployment.yaml Конвертировать YAML → JSON: yq -o=json . config.yaml | jq '.database.host' Слияние файлов: yq eval-all 'select(fileIndex == 0) * select(fileIndex == 1)' base.yml override.yml #bash #linux #sysadmin #yaml

3 июля 2026 г. · llexa

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

Новые релизы за неделю — только то, что важно для сервера. grafana v13.1.0 — минорный выпуск: улучшения алертов, Loki datasource, API-совместимость. immich v3.0.0 — мажорный релиз self-hosted фото/видео: новый API, поддержка WebP/AVIF. 3x-ui v3.4.2 — WireGuard Multi-Client: несколько туннелей на одного клиента, Balancer Observatory. keycloak 26.4.13 — патч: исправления безопасности HTTP-сессий. skim v4.10.0 — fuzzy-finder (аналог fzf, Rust): ускорение индексирования, новые привязки. bottom 0.14.3 — TUI-монитор (btm): исправления, обновление зависимостей. #linux #sysadmin #releases

3 июля 2026 г. · llexa

ioping: пинг для диска

ioping отправляет I/O-запросы к диску или директории и показывает задержку каждого — аналог ping для дискового I/O. ioping -c 10 /dev/sda # 10 запросов к блочному устройству ioping -c 10 /tmp # к файловой системе (tmpdir) ioping -s 4k -c 20 /var # блок 4K, 20 итераций Пример вывода: 4 KiB <<< /dev/sda: request=5 time=112.4 us (fast) --- /dev/sda ioping statistics --- 10 requests completed in 9.00 ms, 40 KiB read min/avg/max/mdev = 89.2/112.4/201.7/32.5 us Режим нагрузочного теста — burst IOPS: ...

2 июля 2026 г. · llexa

iperf3: тест пропускной способности сети

iperf3 — клиент-серверный тест пропускной способности. Один хост — сервер, второй — клиент. # На сервере iperf3 -s # На клиенте iperf3 -c 192.168.10.1 # TCP-тест (10 сек по умолчанию) iperf3 -c 192.168.10.1 -t 30 # 30 секунд iperf3 -c 192.168.10.1 -P 4 # 4 параллельных потока iperf3 -c 192.168.10.1 -R # реверс: сервер → клиент UDP — для проверки jitter и потерь (актуально для VoIP и tunnel-трафика): iperf3 -c 192.168.10.1 -u -b 500M # UDP, ограничение 500 Mbit/s Итог выглядит так: ...

2 июля 2026 г. · llexa

Proxmox #5: cloud-init — первый запуск без рук

cloud-init настраивает ВМ при первом старте: hostname, SSH-ключи, сеть. Proxmox передаёт конфиг через cloudinit-диск. Создать шаблон из cloud-образа Ubuntu: qm create 9000 --name ubuntu-tmpl --memory 2048 --net0 virtio,bridge=vmbr0 qm importdisk 9000 ubuntu-cloud.img local-lvm qm set 9000 --scsihw virtio-scsi-pci --scsi0 local-lvm:vm-9000-disk-0 qm set 9000 --ide2 local-lvm:cloudinit --serial0 socket --vga serial0 qm set 9000 --boot c --bootdisk scsi0 qm template 9000 Клонировать и сразу задать параметры: qm clone 9000 101 --name web01 --full qm set 101 --ciuser deploy --sshkeys ~/.ssh/id_ed25519.pub qm set 101 --ipconfig0 ip=192.168.10.101/24,gw=192.168.10.1 qm start 101 ВМ стартует готовой к SSH — cloud-init записал ключ без ручного вмешательства. Лог внутри гостя: cat /var/log/cloud-init-output.log ...

2 июля 2026 г. · llexa

nice, renice, ionice: приоритеты процессов и I/O

nice запускает команду с пониженным CPU-приоритетом (от -20 до +19, чем выше — тем ниже): nice -n 10 make -j4 # сборка не задавит остальное nice -n 19 tar czf ... # архивирование в самом фоне renice меняет приоритет уже запущенного процесса: renice -n 15 -p 12345 # по PID renice -n 10 -u backup # всем процессам пользователя Повысить приоритет (отрицательное значение) — только root. ionice управляет I/O-приоритетом. Классы: 1 — realtime, 2 — best-effort, 3 — idle: ...

1 июля 2026 г. · llexa

PostgreSQL: autovacuum — когда и почему убирает

Autovacuum срабатывает, когда количество мёртвых кортежей превышает порог: threshold + scale_factor × n_live_tup По умолчанию: 50 + 0.2 × размер_таблицы. Для большой таблицы это слишком много — bloat накапливается быстро. Настроить на уровне таблицы: ALTER TABLE orders SET ( autovacuum_vacuum_scale_factor = 0.01, autovacuum_vacuum_threshold = 100 ); Смотреть когда последний раз убиралось и сколько мёртвых кортежей сейчас: SELECT relname, n_dead_tup, last_autovacuum, last_autoanalyze FROM pg_stat_user_tables ORDER BY n_dead_tup DESC; autovacuum_naptime (по умолчанию 1 мин) — как часто демон проверяет таблицы. На нагруженных базах снизить до 15s. ...

1 июля 2026 г. · llexa

Современные ФС #3: btrfs — RAID и scrub

btrfs реализует RAID на уровне файловой системы — без mdadm. Создать том из двух дисков с зеркалированием: mkfs.btrfs -d raid1 -m raid1 /dev/sdb /dev/sdc mount /dev/sdb /mnt/data Флаг -d — профиль данных, -m — профиль метаданных. Для трёх+ дисков доступны raid5, raid6, raid10. Добавить диск к существующей ФС и перераспределить под новый профиль: btrfs device add /dev/sdd /mnt/data btrfs balance start -dconvert=raid1 -mconvert=raid1 /mnt/data Проверка целостности — scrub читает все блоки и сверяет чексуммы: ...

1 июля 2026 г. · llexa

chattr и lsattr: защита файлов на уровне ФС

chattr +i /etc/resolv.conf — файл становится иммутабельным: даже root не может изменить, удалить или переименовать его до снятия атрибута. chattr +i /etc/resolv.conf # иммутабельный chattr +a /var/log/app.log # append-only: нельзя перезаписать или удалить chattr -i /etc/resolv.conf # снять атрибут lsattr /etc/resolv.conf # ----i---------e--- lsattr -R /etc/ # рекурсивно +a (append-only) — для лог-файлов: процесс пишет, но никто не сделает truncate или rm. Работает на ext2/3/4 и btrfs; на tmpfs и vfat атрибуты не поддерживаются. ...

30 июня 2026 г. · llexa

mapfile и readarray: файл в bash-массив

mapfile (alias readarray) читает строки в массив за один вызов — чище цикла while IFS= read -r line. mapfile -t lines < /etc/hosts # -t убирает \n в конце каждой строки echo "${#lines[@]}" # количество строк echo "${lines[0]}" # первая строка mapfile -t hosts < <(grep -v '^#' /etc/hosts) # из process substitution mapfile -t -n 10 head10 < bigfile # только первые 10 строк В отличие от arr=($(cat file)), не ломается на строках с пробелами и не делает glob-expansion. readarray — полный синоним. Требует bash 4.0+. ...

30 июня 2026 г. · llexa