LINUX系统中的一次性定时任务
一、前言:
linux中有两种定时任务,一种是一次性定时任务“at”,一种是周期性定时任务“cron”;这里写的是一次性定时任务
二、启动服务:
一次性定时任务需要“atd”这个东西支持才行。所以要启动它,命令如下
service atd start 或 /etc/init.d/atd start
注意:如果找不到这个服务,那就用"yum install at"进行安装一下,象CentOS6.5最小化安装的就没有默认安装它。
三、安全性:
我们可以利用 /etc/at.allow 和 /etc/at.deny 这两个文件来控制 at 的使用权限!
意思很简单/etc/at.allow 是允许谁可以用at命令,/etc/at.deny是不允许谁使用at命令!
有的系统中可能只存在/etc/at.deny,在我的系统中就只存在这个文件!
实例:
在里面写入一个用户的名称:如 xrc
然后用xrc用户登录执行at就会出再以下结果
[xrc@localhost ~]$ at
You do not have permission to use at.
四、命令用法
[root@localhost ~]# at [-mldv] TIME
[root@localhost ~]# at -c 工作号码
选项不参数:
-m :当 at 的工作完成后,即使没有输出讯息,亦以 email 通知使用者该工作已完成。
-l :at -l 相当于 atq,列出目前系统上面的所有该用户的 at 任务;
-d :at -d 相当于 atrm ,可以删除一个在 at列表中的任务 ;
-v :可以使用较明显的时间格式栏出 at 排程中的任务列表;
-c :可以列出后面接的该项工作的实际指令内容。
TIME:时间格式,这里可以定义出『什么时候要进行 at 这项工作』的时间,
格式有:
HH:MM ex> 04:00
在今日的 HH:MM 时刻进行,若该时刻已超过,则明天的 HH:MM 进行此工作。
HH:MM YYYY-MM-DD ex> 04:00 2009-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 + 3 days
就是说,在某个时间点『再加几个时间后』才进行。
五、实例
实例1:在5分钟之后将时间写入/home/date
[root@localhost home]# at now+5minutes
at> date>/home/date
at> <EOT>
job 16 at 2015-06-16 23:50
实际2:在2015年6月15号晚上23:59分在终端pts/0上输出hello
[root@localhost home]# at 23:59 2015-06-16
at> echo 'hello'>/dev/pts/0
at> <EOT>
job 17 at 2015-06-16 23:59
实例3:查看任务计划
[root@localhost pts]# at -l
17 2015-06-16 23:59 a root
16 2015-06-16 23:50 a root
实例4:删除一个任务
[root@localhost pts]# at -l
17 2015-06-16 23:59 a root
[root@localhost pts]# atrm 17
[root@localhost pts]# at -l
一、前言:
linux中有两种定时任务,一种是一次性定时任务“at”,一种是周期性定时任务“cron”;这里写的是一次性定时任务
二、启动服务:
一次性定时任务需要“atd”这个东西支持才行。所以要启动它,命令如下
service atd start 或 /etc/init.d/atd start
注意:如果找不到这个服务,那就用"yum install at"进行安装一下,象CentOS6.5最小化安装的就没有默认安装它。
三、安全性:
我们可以利用 /etc/at.allow 和 /etc/at.deny 这两个文件来控制 at 的使用权限!
意思很简单/etc/at.allow 是允许谁可以用at命令,/etc/at.deny是不允许谁使用at命令!
有的系统中可能只存在/etc/at.deny,在我的系统中就只存在这个文件!
实例:
在里面写入一个用户的名称:如 xrc
然后用xrc用户登录执行at就会出再以下结果
[xrc@localhost ~]$ at
You do not have permission to use at.
四、命令用法
[root@localhost ~]# at [-mldv] TIME
[root@localhost ~]# at -c 工作号码
选项不参数:
-m :当 at 的工作完成后,即使没有输出讯息,亦以 email 通知使用者该工作已完成。
-l :at -l 相当于 atq,列出目前系统上面的所有该用户的 at 任务;
-d :at -d 相当于 atrm ,可以删除一个在 at列表中的任务 ;
-v :可以使用较明显的时间格式栏出 at 排程中的任务列表;
-c :可以列出后面接的该项工作的实际指令内容。
TIME:时间格式,这里可以定义出『什么时候要进行 at 这项工作』的时间,
格式有:
HH:MM ex> 04:00
在今日的 HH:MM 时刻进行,若该时刻已超过,则明天的 HH:MM 进行此工作。
HH:MM YYYY-MM-DD ex> 04:00 2009-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 + 3 days
就是说,在某个时间点『再加几个时间后』才进行。
五、实例
实例1:在5分钟之后将时间写入/home/date
[root@localhost home]# at now+5minutes
at> date>/home/date
at> <EOT>
job 16 at 2015-06-16 23:50
实际2:在2015年6月15号晚上23:59分在终端pts/0上输出hello
[root@localhost home]# at 23:59 2015-06-16
at> echo 'hello'>/dev/pts/0
at> <EOT>
job 17 at 2015-06-16 23:59
实例3:查看任务计划
[root@localhost pts]# at -l
17 2015-06-16 23:59 a root
16 2015-06-16 23:50 a root
实例4:删除一个任务
[root@localhost pts]# at -l
17 2015-06-16 23:59 a root
[root@localhost pts]# atrm 17
[root@localhost pts]# at -l