一、crond任务调度
1.1概述
任务调度:是指系统在某个时间执行的特定命令或者程序
1.2基本语法
crontab [选项]
crontab -e 编辑crontab定时任务
crontab -l 查询crontab任务
crontab -r 删除当前用户所有的定时任务
1.3 快速入门
执行crontab -e 命令,接着输入任务到调度文件
如 */1 * * * * ls -l /etc > /tmp/to.txt 意思是每分钟执行 ls -l /etc > /tmp/to.txt 命令
*/1 * * * * my.sh 意思是每分钟执行my.sh脚本
1)占位符说明
项目 | 含义 | 范围 |
---|---|---|
第一个* | 一个小时的第几分钟 | 0-59 |
第二个* | 一天当中的第几个小时 | 0-23 |
第三个* | 一个月的第几天 | 1-31 |
第四个* | 一年中的第几月 | 1-12 |
第五个* | 一周的星期几 | 0-7(0和7都代表星期日) |
2)特殊符号说明
特殊符号 | 含义 |
---|---|
* | 任何时间 |
, | 不连续的时间。例如0 8,12,16 * * * 代表每天8点0分,12点0分,16点0分执行一次 |
- | 连续时间 0 6 * * 1-6 代表周一到周六5点0分执行 |
*/n | 代表每隔多久执行一次。例如*/10 * * * * 代表每10分钟执行一次。 |
二、at定时任务
2.1基本介绍
1)at命令是一次性定时任务,at的守护进程atd会以后台模式运行,检查作业队列。
2)atd守护进程默认是60分钟检查一次作业队列,有任务与当前时间匹配,则运行此作业。
3)在使用at命令时,确保atd进程启动。可以通过下面命令来确定是否运行
ps -ef|grep atd
2.2 常用命令
1)at 命令
step1:
at [选项,非必须] [时间] 回车
step2:
再输入要执行的命令
step3:
输出两次ctrl+D结束at命令的输入。
例如:
[zrb222@localhost ~]$ at 5am tomorrow
at> ls -al /etc/ > a.txt<EOT>
job 4 at Mon Mar 31 05:00:00 2025
2)atq命令查看系统中没有执行的任务
[zrb222@localhost ~]$ atq
3 Mon Mar 31 17:00:00 2025 a zrb222
3)atrm 任务号 来删除已经设置的任务
atrm 4 // 表示删除编号为4的job任务。