crontab命令主要用于设置命令行或者脚本周期性的执行。该命令从标准输入设备读取指令,并将其存放于文件中,以供之后读取和执行。本文主要讲述crontb命令的基本语法和配置方法。
crontab命令格式
crontab [-u user] -e -l -r
- -u 用户名,不加-u参数默认为当前用户。
- -e 编辑crontab文件。
- -l 列出crontab文件中的内容。取值来源为/var/spool/cron下对应的文件
- -r 删除crontab文件。
crontab命令格式
# Example of job definition:
.---------------- minute (0 - 59)
| .------------- hour (0 - 23)
| | .---------- day of month (1 - 31)
| | | .------- month (1 - 12) OR jan,feb,mar,apr ...
| | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
| | | | |
* * * * * command/script
一个定时任务的配置共包括6个字段,分别是分、时、日、月、周、命令行或脚本,每一列取值的范围或者含义如上述格式中注释描述。特别注意一点是命令行或者脚本一定要配置成绝对路径。
特殊字段说明
-
星号(
*
):代表所有可能的值,例如在第1列表示每分钟执行,第2列表示每小时执行,第3列表示每天执行。 -
逗号(
,
):可以用逗号隔开的值表示指定一个列表范围,例如,在第1列设置15,30,45表示在第15分钟、30分钟、45分钟执行。 -
中杠(
-
):可以用整数之间的中杠表示一个整数范围,例如"2-6"表示2,3,4,5,6 -
正斜线(
/
):可以用正斜线指定时间的间隔频率,例如第2列设置成"*/2",表示每两小时执行一次。
每天晚上10点运行rumenz.sh
脚本
0 22 * * * /root/rumenz.sh
每月的1,3,7的早上8.30运行rumenz.sh
> 30 8 1,3,7 * * /root/rumenz.sh
每周六,日的的凌晨2点执行rumenz.sh
> 0 2 * * 6,0 /root/rumenz.txt
每天的的18点到23点每30分执行rumenz.sh
0,30 18-23 * * /root/rumenz.sh
//或者
*/30 18-23 * * /root/rumenz.sh
每天凌晨2点访问一个网址
> 0 2 * * * /usr/bin/curl https://rumenz.com
crontab每10秒执行一次rumenz.sh
* * * * * /root/rumenz.sh
* * * * * sleep 10;/root/rumenz.sh
* * * * * sleep 20;/root/rumenz.sh
* * * * * sleep 30;/root/rumenz.sh
* * * * * sleep 40;/root/rumenz.sh
* * * * * sleep 50;/root/rumenz.sh
每 90 分钟运行一次rumenz.sh
0 0-21/3 * * * /root/rumenz.sh
30 0-22/3 * * * /root/rumenz.sh
需要两个表达式实现
每90秒执行一次rumenz.sh
*/3 * * * * /root/rumenz.sh
*/3 * * * * sleep 90;/root/rumenz.sh
需要两个表达式实现
原文链接:https://rumenz.com/rumenbiji/linux-crontab-skills.html
微信公众号:入门小站