标签:ges 查看 count 今天 atq 提示 man 需要 local
at
at命令用于在指定时间执行命令。at允许使用一套相当复杂的指定时间的方法指定的日期必须跟在指定时间的后面。
上面介绍的都是绝对计时法,其实还能够使用相对计时法,这对于安排不久就要执行的命令是很有好处的。指定格式为:now + count time-units,now就是当前时间,time-units是时间单位,这里能够是minutes(分钟)、hours(小时)、days(天)、weeks(星期)。count是时间的数量,究竟是几天,还是几小时,等等。 更有一种计时方法就是直接使用today(今天)、tomorrow(明天)来指定完成命令的时间。
语法
at(选项)(参数)
选项
-f:指定包含具体指令的任务文件;
-q:指定新任务的队列名称;
-l:显示待执行任务的列表;
-d:删除指定的待执行任务;
-m:任务执行完成后向用户发送E-mail。
参数
日期时间:指定任务执行的日期时间。
执行方式:
1)交互式
2)输入重定向 < (也可以多行重定向 << EOF)
3) at –f 文件
依赖与atd服务,需要启动才能实现at任务
at队列存放在/var/spool/at目录中
通过/etc/at.{allow,deny}控制用户是否能执行at任务(白名单优先)
先寻找/etc/at.allow 文件,文件中的使用者才能使用 at ,没有在这个文件中的使用者则不能使用 at (即使没有写在at.deny 当中)
如果/etc/at.allow 不存在,就寻找 /etc/at.deny 这个文件,若写在这个 at.deny 的使用者则不能使用 at ,而没有在这个 at.deny 文件中的使用者则可使用 at 命令。如果两个文件都不存在,只有 root 可以使用 at 这个命令。(相当于一个空的/etc/at.allow文件)
启动at
注:不启动不执行
注:Ctrl -d 生效
实例
三天后的下午 5 点锺执行/bin/ls
[root@localhost ~]# at 5pm+3 days
at> /bin/ls
at> <EOT>
job 7 at 2013-01-08 17:00
计划任务设定后,在没有执行之前我们可以用atq命令来查看系统没有执行工作任务
[root@localhost ~]# atq
8 2013-01-06 17:20 a root
7 2013-01-08 17:00 a root
删除已经设置的任务
[root@localhost ~]# atq
8 2013-01-06 17:20 a root
7 2013-01-08 17:00 a root[root@localhost ~]# atrm 7
[root@localhost ~]# atq
8 2013-01-06 17:20 a root
显示已经设置的任务内容:
[root@localhost ~]# at -c 8
!/bin/sh
atrun uid=0 gid=0
mail root 0
umask 22此处省略n个字符
date >/root/2013.log
以上是一次性计划任务
crontab命令:
>crontab [-u user] [-l | -r | -e] [-i]
选项
-e:编辑任务;
-l:列出所有任务;
-r:移除所有任务;即删除/var/spool/cron/USERNAME文件;
-i:在使用-r选项移除所有任务时提示用户确认;
-u user:root用户可为指定用户管理cron任务;
注意:运行结果以邮件通知给当前用户;如果拒绝接收邮件:
(1) COMMAND > /dev/null 执行了输出到/dev/null
(2) COMMAND &> /dev/null 无论正确和错误都输出到/dev/null
实例:
·
标签:ges 查看 count 今天 atq 提示 man 需要 local
原文地址:https://blog.51cto.com/14150862/2357786