Chinaunix首页 | 论坛 | 博客
  • 博客访问: 783032
  • 博文数量: 143
  • 博客积分: 2077
  • 博客等级: 大尉
  • 技术积分: 2393
  • 用 户 组: 普通用户
  • 注册时间: 2012-09-28 12:57
文章存档

2016年(2)

2015年(3)

2014年(3)

2013年(41)

2012年(94)

分类: LINUX

2012-10-16 08:58:15

仅执行一次的工作调度:at
  想用 at ,那就得先启动吧!
  启动atd:
#/etc/init.d/atd restart
  设置开机就启动 atd 服务:
#chkconfig atd on

  at的运行方式:使用 at 这个命令来生成所要运行的工作,并将这个工作以文本文件的方式写入 /var/spool/at/ 目录内,该工作便能等待 atd 这个服务取用与执行了。

  谁能使用 at 呢?可以通过 /etc/at.allow 与 /etc/at.deny 这两个文件进行限制。工作情况如下:
  1.先寻找/etc/at.allow这个文件,写在这个文件中用户才能使用 at ,没有在这个文件中的用户则不能使用(即使没有写在 /etc/at.deny中);
  2.如果 /etc/at.allow 不存在,就寻找 /etc/at.deny 文件,写在这个文件里的用户则不能使用 at ,而没有在这个文件里的用户就可以使用;
  3.如果两个文件都不存在,只有root能使用。

#at [-mldv] TIME
#at -c 工作号码
  -m:当at的工作完成后,即使没有输出信息,以email通知该用户工作已完成。
  -l:at -l 相当于 atq ,列出目前系统上面的所有该用户的 at 调度。
  -d:at -d 相当于 atrm,可以取消一个在 at 调度中的工作。
  -v:可以使用较明显的时间格式列出 at 调度中的任务列表。
  -c:可以列出后面接的该项工作的实际命令内容。
  TIME:时间格式,可以定义什么时候进行这项工作,格式有:
HH:MM   在今日的这个时刻进行,若超过时间了,就明日执行
HH:MM YYYY-MM-DD   强制在某年某月某一天执行
HH:MM[am|pm] [Month] [Data]      ex> 04pm March 17
HH:MM[am|pm] + number [minutes|hours|days|weeks]
ex> now + 5 minutes   ex> 04pm + 3 days  就是说在某个时间点再加多久后执行

例子:过五分钟后,将 /root/.bashrc 寄给 root 自己
#at now + 5 minutes
at>/bin/mail root -s "testing at job" < /root/.bashrc
at>[EOF]       ==>用 CTRL-d结束
   注意上面的命令与文件一定要用绝对路径。

      将第四个工作内容列出来查阅
#at -c 4
      将电脑在2009/02/22日 23:00关闭
#at 23:00 2009-02-22
at>/bin/sync
at>/sbin/shutdown -h now
at>[EOF]

  at的执行与终端机环境有关,所有stdout、stderr都会传送到执行者的 mailbox 里去,若要在终端机上看到信息,则像这样:   echo "hello" >/dev/tty1  .
  在at工作调度的使用上,系统会将该项 at 工作独立出你的bash环境中,直接交给系统的atd程序来管理,因此,你执行了 at 的工作之后就可以立刻脱机了。

at 工作的管理(查询、删除)
#atq ==>查询
#atrm [jobnumber] ==>删除


batch:系统有空时才执行后台任务。如果在一个非常忙的时候执行 at 不太好,最好是在机器空闲时执行。
  batch会在CPU工作负载小于0.8的时候,才进行你所执行的工作任务。
#batch 23:00 2009-03-17
at>sync
at>shutdown -h now
at>[EOF]


阅读(520) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~