微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

linux 计划任务

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文件

注:Ctrl -d 生效

实例

三天后的下午 5 点锺执行/bin/ls

[[email protected] ~]# at 5pm+3 days
at> /bin/ls
at> <EOT>
job 7 at 2013-01-08 17:00

计划任务设定后,在没有执行之前我们可以用atq命令来查看系统没有执行工作任务

[[email protected] ~]# atq
8 2013-01-06 17:20 a root
7 2013-01-08 17:00 a root

删除已经设置的任务

[[email protected] ~]# atq
8 2013-01-06 17:20 a root
7 2013-01-08 17:00 a root

[[email protected] ~]# atrm 7
[[email protected] ~]# atq
8 2013-01-06 17:20 a root

显示已经设置的任务内容

[[email protected] ~]# 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

实例:

linux  计划任务

·

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐