• linux执行计划任务at命令


    https://www.jianshu.com/p/17f5aa01853f

    在linux计划任务中, cron 是周期性运行某任务,假如我只想在未来的某时间点只是要求任务运行一次,这就用到at命令了,因为at只适合用在未来的某时间点。

    at服务:

    at是由atd服务提供的,在centos6和centos7上启动服务的命令不一样。

    查看和执行atd服务

    centos6:
    service atd start       #启动服务
    service atd  stop      #关闭服务
    service atd status    #查看服务状态

    centos7:
    systemctl status atd.service      #查看服务状态
    systemctl start atd.service        #启动服务
    systemctl stop  atd.service        #关闭服务

    语法:

    at  [option]  TIME

    option(常用的选项):
    -V:  显示版本信息:
    -l:  列出指定队列中等待运行的作业;相当于atq
    -d:  删除指定的作业;相当于atrm
    -c:  查看具体作业任务
    -f:  /path/from/somefile :从指定的文件中读取任务
    -m:  当任务被完成后,将给用户发送邮件,即使没有标准输出
          注意:作业执行命令的结果中的标准输出和错误以邮件通知给相关用户

    TIME:定义出什么时候进行 at 这项任务的原因

    at的时间格式:TIME
    ● HH:MM [YYYY-mm-dd]
    ● noon, midnight, teatime(4pm)
    ● tomorrow
    ● now+#{minutes,hours,days, OR weeks}
    ● HH:MM: 在今日的 HH:MM 进行,若该时刻已过,则明天此时执行任务,命令
    ● at 02:00
    ● HH:MM YYYY-MM-DD: 规定在某年某月的某一天的特殊时刻进行该项任务
    ● at 02:00 2016-09-20
    ● HH:MM[am|pm] [Month] [Date]   命令
    ● at 04pm March 17
    ● at 17:20 tomorow
    ● HH:MM[am|pm] + number [minutes|hours|days|weeks]: 在某个时间点再加几个时间后才进行该项任务
    ● at now + 5 minutes
    ● at 02pm + 3 days

    执行at命令的用户的黑白名单:

    /etc/at.{allow,deny}
    ● 白名单:/etc/at.allow 默认这个文件不存在,只有该文件中的用户才能执行at命令。白名单优先级高,有了白名单,黑名单不生效了(同一个用户又在白名单又在黑名单,只生效白名单,即允许此用户)
    ● 黑名单:/etc/at.deny 默认存在,拒绝该文件中用户执行at命令,而没有在at.deny文件中的使用者则可执行。
    ● 如果两个文件都不存在,只有 root 可以执行at命令root 不在限制范围内,它是超级用户

    案例:

    1、at命令的使用
    [root@centos6 ~]# at 21:20
    at> rm -rf hello
    at> <EOT>
    job 1 at 2017-08-26 21:20

    我定义了在21:20执行 rm -rf hello 这命令
    想退出用ctrl +d 或者crtl + 键退出
    注意:一般会在邮件有提示,直接输入mail 命令就可以看到了
    最好重定向到 &>/dev/null  垃圾箱里去,免得产生大量的信息

    2、同时执行多个任务命令
    用多行重定向的方法:
    [root@centos6 ~]# at 15:00 <<eof  
    echo 123
    echo 234
    eof
    命令是在15:00执行

    多个执行的命令全部放在专门的文件里然后去调用的方法:
    [root@centos6 ~]# vim atcmd
    cd
    rm -rf 112
    pwd
    创建atcmd 任务文件,然后用at -f atcmd 13:00  命令去调用执行这个文件   -f是调用的意思。

    3、计划任务没有标准输入,我想让命令执行完成后我能看到,就用加上-m 强制发邮件来提醒我的计划任务执行完毕。
    at -m 10:07 创建计划任务,用mail查看发现在日记中有记录计划任务执行的命令,还可以在创建计划任务命令后面加日期比如在 10:07 2017-08-27

    4、创建用户的白名单:
    我要把xingxing这用户加入白名单
    默认是没有/etc/at.allow 这文件的所以需要创键
    [root@centos6 ~]# vim /etc/at.allow
    xingxing
    vim /etc/at.allow  把所要加的用户加入者文件里白名单就创建完成了,当然删除白名单也是键入这个文件直接删除就可以了。
    [root@centos6 ~]# cat /etc/at.allow     #查看白名单

    注意的事项:
    1、at依赖与atd 服务, 需要启动才能实现at 任务。
    2、默认黑名单的文件时有的,放在/etc/at.deny 这文件里面,想要删除黑
         名单或者创建黑名单里的用户用vim /etc/at.deny 进去就可以了。
    3、普通用户也是可以创建任务的,不过得看有没有执行权限。
    4、要想在终端打印显示出来需要加wall这个命令 这是广播的意思。

  • 相关阅读:
    JS编码解码详解
    web的几种返回顶部
    图片的懒加载的两种效果
    获取两个日期差
    C#虚方法
    依赖注入(DI)和Ninject
    在应用程序级别之外使用注册为 allowDefinition='MachineToApplication' 的节是错误的
    PetShop的系统架构设计
    C#综合揭秘——细说多线程(下)
    C# Socket编程(4)初识Socket和数据流
  • 原文地址:https://www.cnblogs.com/liuzhenwei/p/11940098.html
Copyright © 2020-2023  润新知