要使用一次性任务计划,linux必须要有负责这个计划任务的五福,那就是atd服务
但是并非所有的linux distribution都默认会打开,我们需要手动激活爱听的任务
#:/etc/init.d/atd start
#:/etc/init.d/atd stop
atd服务启动支持用法:/etc/init.d/atd {start|stop|restart|crondrestart|status}
出现如下服务,证明系统未安装爱听的服务,如图:
我们需要手动安装
#:yum install - y at
#:apt-get install at
启动服务:
#:/etc/init.d/atd start
如果担心启动是否执行OK的话,可使用命令查看:
#;ps aux |grep atd
at 命令参数
at [参数] [时间]
-m:当指定的任务被完成之后,将给用户发送邮件,即使没有标准输出
-I:atq的别名
-d:atrm的别名
-v:显示任务将被执行的时间
-c:打印任务的内容到标准输出
-V:显示版本信息
-q:使用指定队列
-f:从指定文件读入任务,而不是从标准输入读入
-t:一时间参数的形式提交要运行的任务
at时间格式:
HH:AM
ex>04:00#在今日的HH:MM是可执行,弱势该是可以超过,在在明天的此时可执行
HH:MM YYYY-MM-DD
ex>04:00 2016-03-17
强制规定在某年某月的某一天的特殊时刻进行该任务
HH:MM[am|pm] [Month] [date]
ex>04pm March 17
强制在某年某月的的某时刻进行该任务
HH:MM[am|pm] + number [minutes|hours|days|weeks]
ex>now + 5 minutes
ex<04pm + 3days
某个时间点再加几个事件后才执行该任务
使用实例:
1.三天后的下午5点执行/bin/ls
#:at 5pm+3 days
at>/bin/ls
at>按ctrl+D
2.明天17点钟,输出时间到指定文件内
#:at 17:00 tomorrow
at>date>/tmp/2016.log
at>按ctrl+D
3.使用atq查看系统没有执行的工作任务
#:atq
4.删除已经设定的任务
#:atq
#atrm 任务号
#atq
5.显示已经设定的任务内容
#:at -c任务号
中间省略N多
atd设置开机启动:
#:chkconfig atd on#当前用户
#chkconfig --level 2345 atd on#修改服务器的默认启动等级
at命令的安全问题:
如何达到at命令的使用可控,这是一个问题,不过我哦们可以使用
/etc/at.allow 与 /etc/at.deny
来对at的使用进行限制,其工作原理如下:
先寻找/etc/at.allow,写入这个文件的使用者能用,没有在此文件中的则不能使用(即使没有写在/etc/at.deny中)
如果没有/etc/at.allow不存在,寻找/etc/at.deny文件linux命令,写在此文件中的使用者不能使用,而没有在此文件中的使用者,就可以使用
如果两个文件读不存在,那么只有root可以使用at命令。
一般情况下。allow的管理较为严格,deny则较为松散
一般情况下,按章完成后系统通常会保留一个空的/etc/at/deny文件,仪式是允许所有人使用,如果不希望某人使用的话,直接把使用者的账户跳入/etc/at.deny里面即可。注意:一个账号一行