at命令可以让用户指定在某个特定时刻执行某个程序或指令,所以at命令只是安排仅执行一次的工作。
如果是循环执行的例行性命令则可通过cron这个系统服务来控制,可以参考:
http://blog.csdn.net/boyxulin1986/article/details/12916549
/etc/rc.d/init.d/atd start,用来启动atd这个系统服务;
/etc/rc.d/init.d/atd stop,用来停止atd这个系统服务。
像atd、crond以及syslog等系统服务是常驻内存的程序,它们必须时刻在监控着系统的运行;
另外一些像apache、postfix等负责网络连线的服务,会启动一个可以负责网络监听的端口,
以提供外部客户端的连线要求;
还有一些程序在执行完成后就会结束,该程序被触发后所产生的进程也就会随着消失。
sh-# ps -A | grep atd
2999 ? 00:00:00 atd
sh-#
at命令会在某个指定的时间用/bin/sh去执行指定的命令或程序,
并且会将程序的执行结果发送到用户的个人邮箱中。
使用如下的命令可以查看用户的个人邮箱,
sh-# echo $MAIL
/var/mail/vector
1. at命令允许接收相当复杂的时间指定,这里只介绍几个常规的用法,
如下命令表示从当前时刻算,一分钟后要执行的命令,
sh-# at now + 1min
warning: commands will be executed using /bin/sh
at> pwd
at> <EOT>
job 1 at xxx xxx ...
sh-#
其中<EOT>是按CTRL+D,表示终止输入。
如下命令表示在明天下午五点要去执行pwd这个命令,
sh-# at 5pm + 1day
at> pwd
at> <EOT>
job 2 at xxx xxx ...
sh-#
2. 使用atq命令可以查看当前正在等待执行的任务
sh-# atq
1 xxx xxx
sh-#
3. 使用atrm用来删除指定的任务,
sh-# atrm 1
sh-#
at命令常用的命令选项解释:
-l,用来查看当前的任务队列,等同于atq命令;
-m,用来在任务结束后向执行at命令的用户发送邮件提示。