[Linux] 任务调度相关命令
2026/7/15 4:52:59 网站建设 项目流程

一.crond任务调度

基本介绍:用于重复在系统的某个时间执行对应的命令或者程序

基本语法:

crontab [选项]

常用选项:

-e编辑crontab定时任务
-l查询crontab任务
-r

删除当前用户所有的crontab任务

快速入门:

1.执行crontab -e 命令

2.输入*/1 * * * * ls -a

意思是说每个小时的每分钟执行ls -a

细节参数说明:

5个占位符的说明:

占位符含义范围
第一个参数一个小时当中的第几分钟0-59
第二个参数一天当中的第几个小时0-23
第三个参数一个月当中的第几天1-31
第四个参数一年当中的第几月1-12
第五个参数一周当中的星期几0-7

注意:第五个*中0和7都代表星期日

特殊符号说明:

特殊符号含义
*代表任何时间,比如第一个*代表一个小时中每分钟都执行一次
,代表不连续时间,比如"0 8,12,16 * * * 命令"代表每天8点0分,12点0分,16点0分都执行一次命令
-代表连续的时间范围,比如"0 5 * * 1-6 命令"代表在周一到周六的凌晨5点0分执行命令
*/n代表每多久执行一次,比如"*/10 * * * * 命令"代表每隔10分钟执行一次命令

其他相关指令:

service crontab restart 用于重启任务调度

二.at任务调度

基本介绍:

1.at命令是一次性定时计划任务,at的守护进程atd会以进后台模式运行,检查作业队列来运行(默认情况下每60s检测一次,如果有作业且与当前时间匹配则运行此作业)

2.使用at命令时候,一定要保证atd进程的启动,可以用ps -ed | grep atd来查看

基本语法:

at [选项] [时间] Ctrl+D结束at命令的输入(要按两次)

选项:

选项含义
-m指定任务完成后会给用户发送邮件,即使没有标准输出
-I(大写i)atq的别名
-datrm的别名
-v显示任务将被执行的时间
-c打印任务的内容到标准输出
-V显示版本信息
-q <队列>使用指定的队列
-f <文件>从指定文件读入任务而不是从标准输入读入
-t <时间参数>以时间参数的形式提交要运行的任务

时间指定方法:

1.接受在当天的hh:mm式的时间指定,假如时间已过,那么就在第二天执行

2.使用midnight(深夜),noon(中午),teatime(茶饮时间,一般是下午4点)等模糊词

3.采用12小时制,在时间后加上am或pm,如12pm

4.指定命令执行的具体日期,格式为month day或mm/dd/yy(月/日/年)或dd.mm.yy(日/月/年).指定日期必须跟在指定时间后面.如04:00 2026-07-12

5.使用相对计时法,格式为now+count time-units.now为当前时间,time-units为时间单位(minutes,hours,days,weeks,count).如now + 5minutes

6.直接使用today,tomorrow来指定

举例:两天后的下午五点执行/bin/ls /home

输入at 5pm + 2 days回车,输入/bin/ls /home,输入两次Ctrl+D即可

相关命令:

atq 查询系统中没有执行的工作任务

atrm [数字] 删除job队列中的任务

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询