Use crontab and flock to control cron job sequence
crontab -e
编辑定时任务
0 3 * * * shell.sh
从左到右依次是:分钟、小时、天、月、周
一般短时间(比如1分钟)重复执行的定时任务需要加锁,防止上一个任务没执行完,下一个定时任务重复执行。这里一般使用Linux
系统自带文件锁flock
配合crontab
使用,例如
*/2 * * * * /usr/bin/flock -xn /var/run/cron.lock -c '/home/cron.sh'
参数说明
-s, --shared :获得一个共享的锁。
-x, --exclusive :获得一个独占的锁。
-u, --unlock :移除一个锁,通常是不需要的,脚本执行完后会自动丢弃锁。
-n, --nonblock :如果没有立即获得锁直接失败而不是等待。
-w, --timeout :如果没有立即获得锁就等待指定的时间。
-o, --close :在运行命令前关闭文件的描述符。用于如果命令产生子进程时会不受锁的管控。
-c, --command :在shell中运行一个单独的命令。
Disclaimer
- License under
CC BY-NC 4.0
- Copyright issue feedback
me#imzye.me
, replace # with @ - Not all the commands and scripts are tested in production environment, use at your own risk
- No privacy information is collected here