flock: защита cron-задач от наложения

flock захватывает файловую блокировку перед запуском команды. Если блокировка занята — ждёт или выходит сразу. flock -n /var/lock/backup.lock /usr/local/bin/backup.sh В crontab: */5 * * * * flock -n /tmp/sync.lock /usr/local/bin/sync.sh С -n — не ждать, выйти с кодом 1, если занято. Без -n — ждать освобождения. Файл блокировки создаётся автоматически. Блокировка снимается при завершении процесса — зависший lock не застрянет навсегда. Комбо: flock -w 10 — ждать максимум 10 секунд. #linux #bash #cron #sysadmin

6 июля 2026 г. · llexa

ulimit и лимиты ресурсов процессов

ulimit управляет лимитами ресурсов для процессов текущей оболочки и её потомков. ulimit -a # все лимиты текущей сессии ulimit -n 65535 # открытые файлы (до следующего логаута) ulimit -u 4096 # максимум процессов пользователя Постоянно — через /etc/security/limits.conf: nginx soft nofile 65535 nginx hard nofile 65535 В systemd-сервисах лимиты limits.conf не применяются — нужен LimitNOFILE=65535 в секции [Service]. Проверить текущие лимиты процесса: cat /proc/<pid>/limits. #linux #sysadmin #bash #systemd

6 июля 2026 г. · llexa

vmstat: мониторинг памяти и активности ядра

vmstat выводит снапшот состояния системы: очередь процессов, память, своп, блочный IO, прерывания, нагрузку CPU. vmstat 1 5 # 5 замеров раз в секунду vmstat -s # сводка памяти одной колонкой vmstat -d # активность дисков vmstat -SM 1 # память в МБ Ключевые поля: r — в очереди CPU, b — ждут IO, swpd — своп использован, bi/bo — блоков прочитано/записано, wa — %CPU в ожидании диска. Если wa > 20% — узкое место в дисковой подсистеме. Если r > числа ядер — CPU перегружен. ...

6 июля 2026 г. · llexa

dmesg: читаем сообщения ядра правильно

dmesg хранит кольцевой буфер сообщений ядра Linux — именно сюда падают первые признаки проблем с железом: ошибки SATA, срабатывание OOM killer, USB-отключения, kernel panic. По умолчанию вывод идёт без временных меток и без фильтрации — несколько флагов делают его удобным инструментом диагностики. dmesg -T # человекочитаемое время вместо секунд с буткапа dmesg -T -l err,crit # только ошибки и критические события dmesg --follow # следить в реальном времени (как tail -f) dmesg --human # цвет + читаемое время + единицы измерения dmesg -T | grep -i "usb\|nvme\|ata" # поиск по устройству Если ядро OOM-killнуло процесс — это здесь, с именем и PID. Если диск начал сыпать I/O error или ata: SRST failed — тоже здесь, часто за несколько часов до отказа. ...

4 июля 2026 г. · llexa

smartctl: здоровье диска из терминала

smartctl читает S.M.A.R.T.-показатели прямо из диска — счётчики переназначенных секторов, температуру, время наработки, предупреждения о деградации. Диск хранит эту статистику сам по себе; smartctl позволяет запустить встроенный тест и узнать о проблеме до того, как диск откажет. sudo smartctl -H /dev/sda # быстрый вердикт: PASSED / FAILED sudo smartctl -a /dev/sda # полная SMART-информация sudo smartctl -t short /dev/sda # короткий тест (~2 мин) sudo smartctl -l selftest /dev/sda # результаты последних тестов На NVMe диск передаётся как /dev/nvme0 или /dev/nvme0n1. Ключевые атрибуты: Reallocated_Sector_Ct (ненулевой — тревога), Uncorrectable_Error_Cnt, Temperature_Celsius. FAILED в статусе здоровья = немедленный бэкап. ...

4 июля 2026 г. · llexa

Аппаратная инвентаризация без GUI: lspci, lsusb, lshw

Когда нужно понять что за железо стоит на сервере без физического доступа — три утилиты дают полный ответ: от модели CPU и объёма RAM до идентификаторов PCI-контроллеров и дерева USB-хабов. Пригодится при диагностике, настройке драйверов и инвентаризации парка машин. lspci # все PCI-устройства (сетевые карты, GPU, контроллеры) lspci -v -s 00:1f.2 # подробно по адресу lsusb # USB-устройства lsusb -t # дерево хабов и портов sudo lshw -short # полная инвентаризация: CPU, RAM, диски, сеть sudo lshw -class network # только сетевые устройства lshw -short — самый быстрый способ получить полный список компонентов одной командой. lspci удобнее когда нужен точный vendor/device ID для подбора драйвера или поиска ошибки в dmesg. ...

4 июля 2026 г. · llexa

Ansible: первые шаги

Ansible автоматизирует задачи на десятках хостов без агентов — только SSH. Установка: apt install ansible. Inventory (hosts): [web] web1.example.com web2.example.com [db] db1.example.com ansible_user=postgres Ad-hoc команды: ansible web -i hosts -m ping ansible web -i hosts -m shell -a "uptime" ansible all -i hosts -m apt -a "name=nginx state=present" -b Простой playbook deploy.yml: - hosts: web become: true tasks: - name: install nginx apt: name=nginx state=present - name: start nginx service: name=nginx state=started enabled=yes Запуск: ...

3 июля 2026 г. · llexa

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