crontab可以根据用户的设置,在固定的时间或固定的时间间隔执行任务。比如,可以用crontab每天8点或者每隔10分钟去检查邮件服务器是否有新的邮件。
下图是crontab的常用参数及作用:
[root@丢丢圆]# crontab -help
crontab: invalid option -- 'h'
crontab: usage error: unrecognized option
Usage:
crontab [options] file
crontab [options]
crontab -n [hostname]
Options:
-u <user> define user
-e edit user's crontab
-l list user's crontab
-r delete user's crontab
-i prompt before deleting
-n <host> set host in cluster to run users' crontabs
-c get host in cluster to run users' crontabs
-s selinux context
-x <mask> enable debugging
-
查看定时执行的文件( -l list user's crontab):
- 命令:“crontab -l”,如同ll或者ls一样,显示定时任务列表信息
[root@丢丢圆]# crontab -l
10 */1 * * * mail -s "hello" natsuna@163.com < /root/ddy/text.log
-
修改定时脚本里面的执行内容( -e edit user's crontab):
- 命令:“crontab -e”,后续的操作方法和 Vim 是一致的
- 配置定时任务的具体格式说明:* * * * * 命令(*从左到右,依次是:分、时、日、月、星期)
格式 | * | * | * | * | * | 命令 |
含义 | 一小时当中的第几分钟 | 一天(24小时)当中的第几小时 | 一个月当中的第几天 | 一年当中的第几个月 | 一周当中的星期几 | 要定时执行的任务 |
范围值 | 0-59 | 0-23 | 1-31 | 1-12 | 0-7(0和7都代表星期日) | - |
-
-
- 格式举例:10 8 * * * mail -s "hello" natsuna@163.com ,每天8点10分给natsuna@163.com发送标题为hello的邮件
- 扩展:时间的特殊格式
-
符号 | 含义 |
* | 代表所有范围值,比如在分钟位置填*表示值为0-59 |
- | 代表连续的时间范围,比如在日期位置填1-3表示1号到3号 |
, | 代表不连续的时间,比如在月份位置填1,3表示1月和3月 |
/ | 代表每隔多久执行一次,比如在分数位置填*/10表示每10分钟执行一次 |
-
-
- 格式举例:
- */10 2 * * * mail -s "hello" natsuna@163.com ,每天的2点每隔10分钟给natsuna@163.com发送标题为hello的邮件
- 10 1,5 * * * mail -s "hello" natsuna@163.com ,每天的1点10分和5点10分给natsuna@163.com发送标题为hello的邮件
- 10 8 * * 1-3 mail -s "hello" natsuna@163.com ,每周一到周三的8点10分给natsuna@163.com发送标题为hello的邮件
- 格式举例:
-
参考来源:
- 在线工具-https://tool.lu/crontab/
- Linux crontab 命令-https://www.runoob.com/linux/linux-comm-crontab.html
- Linux crontab命令:循环执行定时任务(详解版)-http://c.biancheng.net/view/1092.html
--未完待续--