Linux-定时任务at命令

太多场景需要使用定时任务,在特定时间执行一次,自动完成设定的任务。

与cron命令不一样,at不需要让任务从现在开始一直循环运行。

语法简洁。

一、使用教程

1、安装at

大部分Linux发行版已经安装at命令,可以使用at -V查看

 

未安装时进行yum install at

2、启动at守护进程,叫做atd

#启动atd

systemctl start atd

#设置开机自启

systemctl enable atd

 

3、at命令

at [选项] [日期时间]

选项

-f    制定包含具体指令的任务文件

-q   指定新任务的队列名称

-l     显示待执行任务的列表

-d   删除指定的待执行任务

-m  任务执行完成后向用户发送E-mail

参数

日期时间:指定任务执行的日期时间

at命令中时间可以用1:30 PM,13:37,now +数字等格式

now +数字 时间单位,是从现在开始,x单位后执行,单位可以是minutes, hours, days, weeks

例子:

at 5 PM +3 days

at 18:00 tomorrow

时间表达式

CC指定年份的前两位数字

YY指定年份的后两位数字

MM指定一年的哪一个月,01-12

DD指定一月中哪一天,01-31

hh指定一天中哪一小时,00-23

mm指定一小时中哪一分钟,00-59

ss指定一分钟哪一秒,00-59

YYMMDDhhmm[.ss] (缩写年、月、日、小时、分钟[秒])

[[CC]YY]MMDDhhmm[.ss] (完整年、月、日、小时、分钟和[秒])

now

midnight

noon

teatime(下午4点)

AM

PM

时间和日期可以是绝对的,也可以添加一个加号+,让执行时间相对于现在。

now相对时间下,可以用以下指定单位

minutes

hours

days

weeks

months

years

4、at交互性安排任务

输入at,然后加上具体时间,进入交互模式,设置完成后,按ctrl+d进行退出保存。

 

5、非交互式at

使用管道符或printf将值传递给at

echo “echo ‘how to use at’ > /root/he.txt “ | at now +1 minute

6、其他命令

查看at队列

atq

 

删除任务

at -d 任务号

atrm 任务号

查看任务内容

at -c 任务号

二、相关文件

1、时间规范的定义

/usr/share/doc/at-3.1.13/timespec

背景:

该文件以yacc语法进行编写。yacc(Yet AnotherCompilerCompiler)是一个经典的生成语法分析器的工具,需要搭配词法分析器使用,通常交互是语法分析器调用词法分析器来实现的

yacc的基本规范:包含三部分,定义段,规则段,用户子例程段

…定义段…

%%

…规则段…

%%

…用户子例程段…

备注:前两部分必须,但定义段可以是空的,用户子例程段和前面%可以省略

token是基本项,是声明

规则段格式

A : BODY;

截取的部分时间定义

 

2、计划任务的存放

默认情况存放在/var/spool/at/这个文件下

3、使用权限的限定

root用户可以使用at命令,其他用户使用at的权限在/etc/at.allow【定义可以使用计划任务的用户】和/etc/at.deny【定义不能使用计划任务的用户】文件中

权限判定优先级:

/etc/at.allow优先级高于/etc/at.deny

权限判定顺序:

/etc/at.allow文件存在时,只有该文件中用户名对应用户才能使用at;不存在时,/etc/at.deny存在,不在at.deny中的用户都可以使用at

如果at.allow和at.deny文件都不存在,只有root能使用at

at.deny文件默认为空,表示任何用户都可以使用at命令。

一般情况,两个文件存在一个即可,可以自己创建。

只有几个用户使用at时,保留at.allow,大部分都要用at时,保留at.dent

 

 

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小烂云

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值