TGViewer
LinuxCamp | DevOps LinuxCamp | DevOps @linuxcamp_tg · 13.6K subscribers
Post #610 7.44K
flock: чтобы cron не запускал одно и то же дважды

У cron есть суперсила: он запускает задачи по расписанию. И есть скрытая пассивка: ему всё равно, что прошлый запуск ещё не закончился. Так рождаются классические баги: двойная чистка, двойная рассылка, два бэкапа в один файл, гонки за локи в БД.

Мастхев-решение

Запускать только один экземпляр, остальные попытки пропускать:


* * * * * flock -n /tmp/myjob.lock -c '/usr/local/bin/myjob.sh'


-n значит не ждать, если занято, сразу выйти.

Если важно не пропустить, а выполнить по очереди

Ждать пока освободится лок:


flock /tmp/myjob.lock -c '/usr/local/bin/myjob.sh'


Или ждать максимум 30 секунд:


flock -w 30 /tmp/myjob.lock -c '/usr/local/bin/myjob.sh'


Чтобы было видно пропуск


flock -n /tmp/cleanup.lock -c '/usr/local/bin/cleanup.sh' || logger -t cleanup "skip: lock busy"


Вывод:

flock это ремень безопасности для cron. Одной строкой ты убираешь параллельные запуски, гонки и случайную порчу данных.

LinuxCamp | #utils
  • 👍 46
  • 🔥 9
  • ❤ 5
  • ❤‍🔥 1
More from @linuxcamp_tg
  1. Sep 28, 2026Проекту GNU вчера исполнилось 43 года 1983 год: Ричард Столлман объявил планы разработать…
  2. Sep 25, 2026Linux будет работать на ноутах с Snapdragon X2. Qualcomm добавляет полноценную поддержку L…
  3. Sep 24, 2026Так все по делу)) Советует же самый быстрый фикс LinuxCamp | #memes
  4. Sep 23, 2026Планы на 3 октября — прийти на RWB Infra x Security Meetup Мы направим прожекторы на инфра…
  5. Sep 22, 2026Ещё одна рекордная неделя для AI-разработки в Linux. На прошлой неделе в ядро попало 1 634…
  6. Sep 17, 2026Открыл плейлист, а как выйти - непонятно 😁 LinuxCamp | #memes
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →