在linux实现任务计划的命令有三个:at,batch,crond
at: 在未来的某个时间点定期执行一次任务(可以是一条或者多条命令组合,可以是一个脚本) at的使用非常方便灵活,at后面可以跟各种各样的时间格式,如:
at 18:00pm July 9 在命令行输入上面任意一种格式之后,回车可以在之后的at>提示符下输入任务指令,完成后Ctrl+D存盘退出。例如: At now+5min //设定任务计划时间 At> //命令输入处 At> //命令输入处 Ctrl+d //提交计划
另外at可以使用的options还有: #at -d 作业号 //删除计划任务 #at -l //列出计划任务
默认情况下,任何用户都可以使用at服务,但这样是不安全的。
总的来说at在实际使用的过程中使用的不是很多,所以这里不做过多介绍
..................................................................
batch :跟at一样也是定期执行的命令,使用方法也跟at相同, at 和batch的配置文件都是at.allow和at.deny,但是不同的是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 命令。推荐你在引导时启动该服务。 .....................................................linux 下计划任务的相关命令介绍完毕 ok!
|
|