54просмотров
15.0%от подписчиков
11 июня 2025 г.
📷 ФотоScore: 59
🔒 once(): один экземпляр скрипта без PID-файлов Cron дергает backup каждые 5 минут, но предыдущий ещё копирует 200 ГБ? Оберни команду во flock — и параллельные запуски отрубаются без лишней логики. #!/usr/bin/env bash
# once.sh — запускает «тяжёлую» команду, если другая копия ещё не идёт
( flock -n 9 || { echo "⏳ Уже выполняется"; exit 1; } # 👉 основная работа ./sync_to_s3.sh
) 9>/var/lock/sync_to_s3.lock
# Пример: в crontab каждые 5 минут
/5 * /opt/scripts/once.sh >>/var/log/once.log 2>&1 💡 Нужна блокировка на целый юнит? Используй flock /run/lock/… или опцию --lock-file в systemd-run — принцип тот же, а возможностей больше. #Bash #DevOps #Cron #Flock #Tip