Linux下crontab命令详解与文件锁flock的使用

crontab -e编辑定时任务

0 3 * * * shell.sh

从左到右依次是:分钟、小时、天、周、月

一般短时间(比如1分钟)重复执行的定时任务需要加锁,防止上一个任务没执行完,下一个定时任务重复执行。

这里一般使用Linux自带文件锁flock

*/1 * * * * /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中运行一个单独的命令。
原文地址:https://www.cnblogs.com/imzye/p/5493817.html