Linux 系统管理之一次性定时任务 at 的使用
2017-07-09 10:23
489 查看
环境Centos 6.5
1、查看 at 服务是否安装(守护进程 atd 为 at 命令提供服务)
2、查看服务是否在运行
显示服务正在运行,如果没有运行可以执行
3、at 的 黑名单和白名单
在系统的
如果系统中有
如果系统中没有
如果两个文件都不存在,那么只有root 用户可以执行。
4、at 命令的说明
选项:
at 时间有多种指定方式:
HH:MM 如: at 02:30
HH:MM YYYY-MM-DD 如:at 8:00 2020-01-01
HH:MM[am | pm] [month] [date] 如:at 8:00 Oct 1 # 在十月一号的八点
4.HHlMM[am | pm] + number [minutes | hours | days | weeks] 如:at 8:00 + 1days
最常用的的一个时间:now + 时间 比如在十分钟后:at now + 10 minutes,在一天后:at now + 1 days
5、at 命令的使用示例
比如现在根目录下有一个脚本文件
现在需要使用at 命令设定在5分钟后执行该脚本文件:
然后查看所有 at 任务,可以看到刚才添加的 7 号任务:
查看 7 号任务的详情:
删除 7 号命令,再次查看已经被删除:
总结:
at 一次性定时任务
at 命令是用来执行一次性任务,比如要在二十分钟后重启,要在 2 分钟后启动一个可执行程序,或者在一天后执行一个脚本。适合应对突发性和临时性的任务。1、查看 at 服务是否安装(守护进程 atd 为 at 命令提供服务)
[Jack@www regular_time]$ chkconfig --list | grep atd atd 0:off 1:off 2:off 3:on 4:on 5:on 6:off # 3 和 5 级别是字符界面和图像界面这两个 on就表示已经安装
2、查看服务是否在运行
[Jack@www regular_time]$ service atd status atd (pid 2198) is running...
显示服务正在运行,如果没有运行可以执行
service atd restart重新启动一下服务。
3、at 的 黑名单和白名单
在系统的
/etc目录下可能会有两个关于 at 命令使用限制的文件,一个是黑名单(
etc/at/deny)一个是白名单(
/etc/at.allow),一般只有一个黑名单文件,因为大部分情况下是允许执行 at 命令的,如果使用白名单,有 100 个用户的话,岂不是要写100行,但黑名单只需要把被限制的一两个写上就行。
如果系统中有
/etc/at.allow文件,那么只有被写入该文件的用户才可以执行 at 命令(将使用者的账号写入即可,一个一行)相当于白名单文件,此时
/etc/at.deny就会被忽略,相当于黑名单。
如果系统中没有
/etc/at.allow文件,只有
/etc/at.deny,那么被写入该文件的用户就不能使用 at 命令,黑名单对 root 不起作用。
如果两个文件都不存在,那么只有root 用户可以执行。
4、at 命令的说明
选项:
[root@www /]# at [-ldc] [root@www /]# at 时间 -l:列出当前用户的at任务列表,也可使用 atq -d 任务编号:取消一个at 任务,后面跟 at 任务编号,也可使用atrm 任务编号代替 -c 任务编号:显示该任务的实际内存,如:at -c 1 ,显示 1 号任务的详情
at 时间有多种指定方式:
HH:MM 如: at 02:30
HH:MM YYYY-MM-DD 如:at 8:00 2020-01-01
HH:MM[am | pm] [month] [date] 如:at 8:00 Oct 1 # 在十月一号的八点
4.HHlMM[am | pm] + number [minutes | hours | days | weeks] 如:at 8:00 + 1days
最常用的的一个时间:now + 时间 比如在十分钟后:at now + 10 minutes,在一天后:at now + 1 days
5、at 命令的使用示例
比如现在根目录下有一个脚本文件
hello.sh在根目录下创建一个文件 at.txt,并写入一句话hello
#!/bin/bash touch at.txt echo "hello" > /at.txt
现在需要使用at 命令设定在5分钟后执行该脚本文件:
[root@www /]# at now + 5 minutes at> /hello.sh at> <EOT> # 在输入命令后 按 ctrl +d 结束输入,并提示我们 此任务编号为7 job 7 at 2017-07-08 19:15 [root@www /]#
然后查看所有 at 任务,可以看到刚才添加的 7 号任务:
[root@www /]# at -l 5 2017-10-01 08:00 a root 7 2017-07-08 19:15 a root 6 2017-07-09 19:01 a root [root@www /]#
查看 7 号任务的详情:
[root@www /]# at -c 7 #!/bin/sh # atrun uid=0 gid=0 ... ... ... # 省略一大堆系统设置的变量 ${SHELL:-/bin/sh} << 'marcinDELIMITER1585a268' /hello.sh # 这就是我们要执行的命令 marcinDELIMITER1585a268 [root@www /]#
删除 7 号命令,再次查看已经被删除:
[root@www /]# at -d 7 [root@www /]# at -l 5 2017-10-01 08:00 a root 6 2017-07-09 19:01 a root [root@www /]#
总结:
at 是一个一次性定时的命令,守护进程 atd 为它提供服务。如果需要周期性定时任务,需要使用 crontab 命令。
相关文章推荐
- Linux 第六周学习笔记 (2),特殊权限列表,at延时任务及定时机制,系统临时文件的管理
- Linux系统任务计划(at、crontab)的使用方法
- LINUX系统中的一次性定时任务
- Linux系统管理-定时任务
- 使用crond和at 在linux中定时执行任务
- linux-系统延迟定时任务与find命令的使用
- Linux系统管理-系统定时任务
- Linux 基础操作(十五)————at延时任务、cron定时任务、临时文件管理
- linux 系统定时任务之 at
- Linux系统管理与定时任务,老司机开车!
- Linux系统上的任务计划(at、crontab)的详细使用方法
- linux 管理小命令9—— 定时执行任务命令at和crontab
- 使用crontab创建 linux 系统定时任务#
- 使用crontab命令配置Linux的系统定时任务
- linux 定时执行任务 at atq atrm命令的使用
- Linux系统上的任务计划相关命令at、crontab的使用方法
- Linux学习笔记----Linux 系统管理----系统定时任务
- Linux系统管理—系统定时任务
- Linux初窥:系统管理之(进程管理、定时任务、系统监控)
- Linux延时定时任务及系统文件查找和临时文件管理