文章标题

来源:互联网 发布:什么是安全控件windows 编辑:程序博客网 时间:2024/06/17 22:14

在linux实现任务计划的命令有三个:at,batch,crond
at: 在未来的某个时间点定期执行一次任务(可以是一条或者多条命令组合,可以是一个脚本)

at的使用非常方便灵活,at后面可以跟各种各样的时间格式,如:

at 18:00pm July 9
at 6 pm Monday
at 2:00
at noon + 5 minutes(具体可以使用的时间格式可以#man at来查看文档)

在命令行输入上面任意一种格式之后,回车可以在之后的at>提示符下输入任务指令,完成后Ctrl+D存盘退出。例如:

At now+5min //设定任务计划时间

At> //命令输入处

At> //命令输入处

Ctrl+d //提交计划

另外at可以使用的options还有:

#at -d 作业号 //删除计划任务

#at -l //列出计划任务

默认情况下,任何用户都可以使用at服务,但这样是不安全的。
如果系统中存在at.allow,则只有列在文件中的用户才可以使用at服务。
如果系统中存在at.deny,则列在文件中的用户不可以使用at服务,其他用户可以

总的来说at在实际使用的过程中使用的不是很多,所以这里不做过多介绍

…………………………………………………………

batch :跟at一样也是定期执行的命令,使用方法也跟at相同,但是不同的是batch不需要指定时间,因为它会自动在系统负载比较低的时候执行(平均负载小于0.8的时候)

…………………………………………………………………………………………………….

crond : 它不同于以上命令的原因就是它是一个“周期性”执行的命令,就是循环执行。另外crond 是一个服务,所以我们在使用之前要检查其是否正在运行

#service crond status //检测crond服务是否运行的命令

crond分为两类:

 系统cronà跟用户无关的操作系统级别的cron,它是为了维护系统能够正常运行,它所有的任务都定义在/etc/crontab文件当中 格式:  *    *    * *   *   *    * *表示:   min :0-59         hour:0-23         day:1-31         month:1-21         week:0-7        username:执行计划任务的用户         //这一点是跟用户cron不一样的地方        command:命令用户cronà任务的定义在/var/spool/cron/USERNAME(文件名将会以用户的名字命名)
格式: *   *   * *   *  *
 *代表:  min :0-59               hour:0-23               day:1-31               month:1-21               week:0-7               command:命令

crond计划任务下的命令有:

crontab –e //开始编辑定义自己的任务执行计划
crond -r //删除自己定义的执行计划
crond -l // 列出定义的计划任务
crond -e redhat //帮助redhat用户制定任务计划

还有一点要注意的是:

crond计划任务里面的命令有时候可能不会执行,因为这个文件里的环境变量PATH跟系统PATH不太一样,它的PATH的默认值为PATH=/sbin:/bin:/usr/sbin:/usr/bin,所以这就造成很多命令不能使用,所以解决的办法有两个,可以自己设定PATH环境变量,也可以用命令的绝对路径,比如ls 我们可以使用 :

/bin/ls -l /etc/
下面是具体的例子:
比如:我们要在每月的3号两点十分自动执行ls –al /etc/

#crond -e //开始编辑计划任务

10 02 03 * * ls –al /etc/ //这是在crond -e 打开文件后写入的内容

以下是几个特殊符号在crond中的使用 :”/” “,” “-”

“/” 表示“每”的意思 例如:

/5 * * * /bin/ls –al /etc/ //表示没五分钟执行一次命令

10 /3 * * date //每三个小时执行一次命令

“,”表示离散时间点

20,50 * * * * data //每个小时的第20分钟和第50分钟执行一次命令

“-“表示“到”的意思,用于时间段

00 00 * * 1-5 data //表示每周一到周五的凌晨时间执行命令

但是crond有一个缺点就是它是为服务器设计的命令,所以它默认就是认为系统会7X24小时开机,但是实际情况我们如果在笔记本上装linux操作系统不可能不关机,所以如果在计划的时间点我们关机了,那么这个任务就不会再执行了,因此为了弥补这个缺陷,产生了anacron命令

…………………………………………………………………..

要使用 anacron 服务,你必须安装了 anacron RPM 软件包,而且 anacron 服务必须在运行。要判定该软件包是否被安装,使用 rpm -q anacron 命令。要判定该服务是否在运行,使用 /sbin/service anacron status 命令。 配置 anacron 任务anacron 任务被列在配置文件 /etc/anacrontab 中。文件中的每一行都代表一项任务,格式是:

格式:Period delay job-identifier command

解释:Period 超出时间

              delay            开机后延迟多久执行              job-identifier 任务描述              command      要执行的命令

对于每项任务,anacron 先判定该任务是否已在配置文件的 period 字段中指定的期间内被执行了。如果它在给定期间内还没有被执行,anacron 会等待 delay 字段中指定的分钟数,然后执行 command 字段中指定的命令。

要启动 anacron 服务,使用 /sbin/service anacron start 命令。要停止该服务,使用 /sbin/service anacron stop 命令。推荐你在引导时启动该服务。

转载 至:http://blog.chinaunix.net/uid-24648486-id-3014017.html

0 0
原创粉丝点击