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 在指定的“小时:分钟”执行命令,例::
HH:MM YYYY-MM-DD 在指定的“小时:分钟 年-月-日”执行,例:: --
HH:MM[am|pm] [month] [date] 在指定的"小时:分钟[上午|下午] [月] [日]"执行,例如 : July
HH:MM[am|pm] [minutes|hours|days|weeks] 在指定的时间“再加多久执行”,例 now + minutes,05am + hours

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

1.3 其他at管理命令

  at还有查询和删除命令

[root@centos2 ~]# atq
#查询当前服务器上的at工作 [root@centos2 ~]# atq
Wed Nov :: a root [root@centos2 ~]# atrm [工作号]
#删除指定的at任务 [root@centos2 ~]# atrm
[root@centos2 ~]# atq
#删除2号at任务后,再查询就没有at任务存在了

最新文章

  1. linux下libuv库安装教程
  2. LINQ的Union方法
  3. centos安装163源
  4. 阻止点击&lt;a&gt;标签链接跳转
  5. Css_2跟3
  6. java识别文件或字符串的编码格式
  7. 关于HashMap根据Value获取Key
  8. 第三代搜索推出网民评价系统,seo末日还会远吗?
  9. jprofiler安装和配置
  10. postgres 数据库备份恢复
  11. 大数据 Hadoop,Spark和Storm
  12. UI设计基础知识和JavaScript
  13. TIME_WAIT状态过多的排查
  14. MyBatis笔记----(2017年)最新的报错:Cannot find class [org.apache.commons.dbcp.BasicDataSource] for bean with name &#39;dataSource&#39; defined in class path resource [com/ij34/mybatis/applicationContext.xml]; nested e
  15. C/C++和Lua是如何进行通信的?
  16. 【剑指offer】把数组排成最小的数
  17. 递归&amp;栈帧空间
  18. 启动tomcat的时候爆出如下错误
  19. scrapy-redis的使用与解析
  20. Django杂记

热门文章

  1. k8s记录-不同集群服务互联
  2. 解决端口被占用问题(端口timewait)
  3. [AWS] Cloud Server
  4. EasyNVR摄像机网页H5全平台无插件直播流媒体播放服务二次开发之接口鉴权示例讲解
  5. Java-Readable
  6. springcloud使用之服务的注册发现与消费
  7. 14.Python略有小成(自由模块)
  8. python3遇到的问题
  9. 中国大学MOOC-翁恺-C语言程序设计习题集(一)
  10. hadoop 异常