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

timeout: защита от зависших команд

Если команда может зависнуть навсегда — timeout убивает её по таймауту: timeout 5s curl https://example.com По умолчанию посылается SIGTERM, но не все процессы его слушают. --kill-after добивает SIGKILL, если процесс не завершился сам: timeout --kill-after=3s 10s ./stuck-script.sh Код возврата 124 — сигнал о том, что сработал именно таймаут, а не ошибка самой команды: timeout 5s long-task; echo $? # 124 = превышен лимит В cron-задачах timeout — стандартная страховка от зависшего скрипта, который иначе будет копиться в процессах до следующего перезапуска: ...

23 июня 2026 г. · llexa