美文网首页Linux.命令Linux
Linux使用at执行一次性任务

Linux使用at执行一次性任务

作者: 刘小白DOER | 来源:发表于2021-06-03 23:11 被阅读0次

        以前笔者写过cron来完成计划任务,详情参考文章-Linux crontab定时任务详细分解,区别在cron是定时任务计划执行,at是执行一次性任务。

        本实验平台为VirtualBox虚拟机CentOS 8 。

        1 、at命令

        要让特定任务运行一次,需要使用at监控程序;

        at类似于打印程序,可以把任务放在/var/spool/at目录下,指定运行时间,即可在指定时间运行;

        at相对于另一个shell,运行at time命令时,逐个发送命令,可以输入任意命令或程序;

        at的守护进程为atd,它有一组命令行工具可与守护进程(at、atq)进行交互。

        2、at time中的时间表示方法

        3、创建at一次性任务

        at now +5min 创建一个五分钟后执行的任务并进入at命令行,可以逐个发送命令。

        输入完成后以ctrl + d 结束at命令行 。

        设置成功的at计划任务会在/var/spool/at下生产一个可执行脚本,可以使用more查看,效果与下面的at -c 是一样的。

        atq(或者at -l)可以检查一次性任务,2为任务号,中间一次性任务执行时间,a表示at或batch命令生成的任务,排序号a-z。最后为发起任务的用户。

        at -c 2可以查看具体要执行的命令。

        上图在的at任务运行后,在/home/mycentos目录下就有at.log生成,里面的信息为“test,2021年 06月 03日 星期四 22:42:00 CST”  。执行成功!

        在任务未执行前,可以使用atrm + 任务号删除任务,比如说明的atrm 2 。普通的非特权用户只能查看和管理自己的任务,root可以查看和管理使用任务。

        4、at的访问控制

        和cron类似,at也提供了访问控制措施,以决定哪些用户可以使用调度服务。

        如果只有at.deny文件,而at.allow文件不存在,则除了黑名单之外的所有用户都可以使用at;

        如果at.allow文件存在,则只有白名单用户才可以使用at;

        如果两个文件都不存在,则只有root管理员可以使用at。

        可以使用man at.deny或者 man at.allow来查看说明信息。

        5、at日志文件

        cron在/var/log/cron日志文件,但是没有找到at的日志文件,搜索一番在 cron日志找到了,原来是共用的。

    相关文章

      网友评论

        本文标题:Linux使用at执行一次性任务

        本文链接:https://www.haomeiwen.com/subject/svsteltx.html