zoukankan      html  css  js  c++  java
  • 定时任务at

    1. at一次性执行定时任务

    1.1 at服务管理与访问控制

      at命令要想正确执行,需要atd服务的支持。atd服务是独立的服务

    [root@centos2 ~]# systemctl status atd

      atd服务启动后,at命令才能正常使用。at命令的访问控制,at的访问控制指的是允许哪些用户使用at命令设定定时任务,或者不允许哪些用户使用at命令。可以想象成为设定黑名单或设定白名单。at的访问控制是依靠/etc/at.allow文件(白名单)和/etc/at.deny文件(黑名单)这两个文件来实现的,具体规则:

        如果系统中有/etc/at.allow文件,那么只有写入/etc/at.allow文件(白名单)中的用户可以使用at命令,其他用户不能使用at命令(/etc/at.deny文件会被忽略,也就是说同一个用户既写入/etc/at.allow文件,也写入/etc/at.deny文件,那么这个用户是可以使用at命令的,因为/etc/at.allow文件优先级更高。)

        如果系统中没有/etc/at.allow文件,只有/etc/at.deny文件,那么写入/etc/at.deny文件(黑名单)中的用户不能使用at命令,其他用户可以使用at命令。不过这个文件对root用户不生效。

        如果系统中这两个文件都不存在,那么只有root用户可以使用at命令。

      系统中默认时只有/etc/at.deny文件,而且这个文件是空的,这样的话系统中所有的用户都可以使用at命令。不过如果我们打算控制用户的at命令权限,把用户写入/etc/at.deny文件即可。

      /etc/at.allow文件的权限更高,如果/etc/at.allow文件存在,则/etc/at.deny文件失效。/etc/at.allow管理行为更加严格,因为只有写入这个文件的用户才能使用at命令,如果需要禁用at命令的用户较多,则可以把少数用户写入这个文件。/etc/at.deny文件的管理较为松散,如果允许使用at命令的用户较多,则可以把禁用的用户写入这个文件。不过这两个文件都不能对root用户生效。

    1.2 at命令

    [root@centos2 ~]# at [选项] 时间
    选项:
        -m:当at工作完成后,无论是否命令有输出,都用email通知执行at命令的用户
        -c 工作号:显示该at工作的实际内容
    
    时间:
        at支持的时间格式如下:
        HH:MM            在指定的“小时:分钟”执行命令,例:01:10
        HH:MM YYYY-MM-DD    在指定的“小时:分钟 年-月-日”执行,例:01:10 2019-08-08
        HH:MM[am|pm] [month] [date]    在指定的"小时:分钟[上午|下午] [月] [日]"执行,例如 01:10 July 25
        HH:MM[am|pm] [minutes|hours|days|weeks]    在指定的时间“再加多久执行”,例 now + 5 minutes,05am + 2 hours

    [root@centos2 ~]# cat hello.sh 
    #!/bin/bash
    
    echo "hello world"
    
    [root@centos2 ~]# at now +1 minutes
    at> /root/hello.sh >> hello.log
    at> <EOT>                  使用Ctrl+d保存at任务
    job 1 at Wed Nov 13 17:44:00 2019    这是第一个at任务
    
    [root@centos2 ~]# cat hello.log 
    hello world

    1.3 其他at管理命令

      at还有查询和删除命令

    [root@centos2 ~]# atq
    #查询当前服务器上的at工作
    
    [root@centos2 ~]# atq
    2    Wed Nov 13 17:55:00 2019 a root
    
    [root@centos2 ~]# atrm [工作号]
    #删除指定的at任务
    
    [root@centos2 ~]# atrm 2
    [root@centos2 ~]# atq
    #删除2号at任务后,再查询就没有at任务存在了
  • 相关阅读:
    Unity3D鼠标点击处
    Unity3D静态AI自动寻路
    Unity3D 雷达检测器
    Unity3D重新加载光线变暗问题
    Unity3D切换场景不销毁物体
    软件&环境&网页
    2020软件工程作业05
    2020软件工程作业04
    利用Java输入输出流更改文件中指定的内容
    2020软件工程作业03
  • 原文地址:https://www.cnblogs.com/sswind/p/11847334.html
Copyright © 2011-2022 走看看