Linux--只执行一次的计划任务--at命令

Linux–只执行一次的计划任务–at命令


文章目录

  • Linux--只执行一次的计划任务--at命令
  • 一、atd的启动和at的运行方式
  • 二、at
  • 总结


一、atd的启动和at的运行方式

atd的启动:

systemctl restrat atd      #重新启动atd这个服务
systemctl enable atd       #让这个服务开机自启动
systemctl status std       #查看一下atd目前的状态

at的运行方式

我们使用at其实是将这个任务以文本的方式写入/var/spool/at/目录内,这样这个任务就会等待atd的服务的使用执行咯
为了安全考虑,在使用at时,我们利用/etc/at.allow/etc/at.deny这两个文件对at加以限制,具体流程:

  1. 先找/etc/at.allow,写在这个文件中的用户才能使用at,没有在这个文件中的不能使用哪怕它也不在/etc/at.deny中
  2. 如果/etc/at.allow不存在就找/etc/at.deny,写在这个文件中的用户不能使用
  3. 如果两个文件都不存在,就只有root可以使用这个命令

二、at

语法: at [选项] [日期时间]
选项:
-f:指定包含具体指令的任务文件
-q:指定新任务的队列名称
-l:显示待执行任务的列表
-d:删除指定的待执行任务
-m:任务执行完成后向用户发送 E-mail 参数 日期时间:指定任务执行的日期时间

执行at指令最重要的地方在于指定[时间]

[日期时间格式]
HH:MM 在今天的HH:MM时刻执行,若该时刻已经过了,就明儿再执行 例如: 09:40
HH:MM YYYY-MM-DD 强制规定在某年某月某日的某时刻执行 例如:09:40 2023-07-18
HH:MM[am|pm] [Month] [Date] 强制规定某年某月某日的某时刻执行 例如:09:40am July 18
HH:MM[am|pm] + number [minutes|hours|days|weeks] 在某个时间点后再加几个时间才执行 例如:09:40am + 3 days

#再过五分钟把/root/.basher发给root自己
at now + 5 minutes  
at> /bin/main -s "This is a test" root < /root/.bashrc
at> <EOT>    CTRL+d 会出现<EOT>代表结束


#在2023-7-18 10:00关机
at 10:00 2023-7-18
at> /bin/sync
at> /bin/sync
at> /sbin/shutdown -h now
at> <EOT>

使用at时,我们会进入一个at shell 环境来让用户执行任务命令,所以建议使用绝对路径


总结

本文介绍了Linux中的at命令,唐怡佳继续加油!!!

你可能感兴趣的:(Linux,嵌入式,linux,服务器,运维)