Dưới đây là cách check nhanh cron nào đang thiếu flock / timeout trên Linux (chuẩn sysadmin, dùng được ngay).


1️⃣ Liệt kê toàn bộ cron hiện có (system + user)

System cron

grep -R "" /etc/cron.d /etc/crontab

Cron của user hiện tại

crontab -l

Cron của user khác

crontab -u username -l

2️⃣ Lọc ra cron KHÔNG có flock

crontab -l | grep -vE 'flock'

➡️ Những dòng hiện ra = cron chạy song song được


3️⃣ Lọc ra cron KHÔNG có timeout

crontab -l | grep -vE 'timeout'

➡️ Những dòng hiện ra = cron có nguy cơ treo


4️⃣ Lọc cron thiếu CẢ flock & timeout (quan trọng nhất)

crontab -l | grep -vE 'flock|timeout'

👉 Đây là danh sách nên xử lý ngay


5️⃣ Check toàn hệ thống (system-wide cron)

grep -R "" /etc/cron.d /etc/crontab \
| grep -vE 'flock|timeout' \
| grep -vE '^#|PATH=|SHELL='

6️⃣ Phát hiện cron nguy hiểm (PHP / curl / wget / mysql)

crontab -l | grep -E 'php|curl|wget|mysql'

➡️ Những cron này nên luôn có flock + timeout


7️⃣ Mẫu cron chuẩn để sửa lại

Cron nguy hiểm

* * * * * php /var/www/site/cron.php

Cron an toàn

* * * * * timeout 300s flock -n /tmp/site_cron.lock php /var/www/site/cron.php

8️⃣ Bonus: check process treo do cron

ps aux | grep php | grep cron

Hoặc process chạy quá lâu:

ps -eo pid,etime,cmd | grep cron

9️⃣ Checklist nhanh (nên áp cho hệ của bạn)

✔ cron PHP
✔ cron WordPress riêng
✔ cron import DB
✔ cron crawl / bot
✔ cron chạy < 5 phút

➡️ BẮT BUỘC: timeout + flock