工作调度
at
作用:指定一个时间,只执行一个任务
比如:我想在今夜12点的时候给别人发送一封邮件,或者明天早上6:00给我重启计算机...(然而我的Linux时间系统是错误的,实验就以实现马上关机为例)
准备:
redhat是默认开启的atd服务,当然也安装了,否则可以
/etc/init.d/atd start 启动
[ root@linuxclient ~]# at 5pm+ 3 days
at> /bin/ls
at> <EOT>
job 27 at 2015-12-12 17:00
[ root@linuxclient ~]# at now + 5 minutes
at> /bin/mail root -s "testing" < /root/.bashrc
at> <EOT>
job 28 at 2015-12-09 00:32
第一个是3天后的下午5点执行ls命令
第二个是5分钟之后将题目为testing的/root/.bashrc发送邮件给root
每个工作都有一个任务工作号
<EOF>,这是按Ctrl+d
atq 查看当前等待执行的任务
atrm 任务工作号 结束任务
at -c 任务工作号 可以查看任务内容
[ root@linuxclient ~]# atq
28 2015-12-09 00:32 a root
27 2015-12-12 17:00 a root
[ root@linuxclient ~]# atrm 28
[ root@linuxclient ~]# atq
27 2015-12-12 17:00 a root
[ root@linuxclient ~]# at -c 27
……
我的实验:
[ root@linuxclient ~]# at now
>at /sbin/shutdown -h now
><EOF>
batch
不着急,等CPU不那么忙的时候再做的at
注意:
1)写命令的时候写绝对路径,不会出现差错
2)默认任何人都可以使用at,但实际可以进行限制在/etc/at.allow和/etc/at.deny中写入账号就行了