定时任务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 在指定的“小时:分钟”执行命令,例::
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任务存在了
最新文章
- linux下libuv库安装教程
- LINQ的Union方法
- centos安装163源
- 阻止点击<;a>;标签链接跳转
- Css_2跟3
- java识别文件或字符串的编码格式
- 关于HashMap根据Value获取Key
- 第三代搜索推出网民评价系统,seo末日还会远吗?
- jprofiler安装和配置
- postgres 数据库备份恢复
- 大数据 Hadoop,Spark和Storm
- UI设计基础知识和JavaScript
- TIME_WAIT状态过多的排查
- 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
- C/C++和Lua是如何进行通信的?
- 【剑指offer】把数组排成最小的数
- 递归&;栈帧空间
- 启动tomcat的时候爆出如下错误
- scrapy-redis的使用与解析
- Django杂记