快速业务通道

Linux 计划任务 at cron

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-04-04

计划任务,即是在约定好的时间执行计划好的任务,在Linux我们惊颤更使用crond服务来完成次工作,cron服务器可以根据配置文件约定好的时间执行特定的任务.比如说,我们在每天凌晨4点更新一次数据库,这既是计划任务.

Linux,实现计划任务有三种方式:

1 at 指定一个时间执行一次或多次任务,一次性使用

2 cron 根据配置文件的时间表自动执行任务,周期性执行

3 系统级别的任务计划及其扩展anacron:错过计划任务执行时间后尽快按照定义频率执行一次

下面我们来一个一个讲解:

一:at:

#at 08:08

>echo "Hello"

>Ctrl d(结束)

上面几行表示在08:08分输出Hello,但是不会显示处理出来,执行结果会以邮件方式发送给执行用户.

at -l 或者是 atq 查询当前正在等待的计划任务,显示如下

2 2011-05-21 01:01 a root

1 2011-05-21 08:08 a root

前面的数字表示计划任务号

at -d 或者是 atrm 删除计划任务

atrm 1

atrm 2

也可以进入/var/spoll/at目录把计划任务删除,at的计划任务都保存在该目录中.

管理员用户有使用at的权限,普通用户是否可以使用at取决于/etc/at.allow和/etc/at.deny文件,两者都有责取allow.一般默认所有用户允许.

二:cron服务,周期性的执行某个计划任务

cron服务由vixie-cron-4.1-76.e15软件包提供,我们可以使用 rpm -qa(查询所有安装的软件包)| grep cron 查询该软件包是否安装,安装完启动cron服务.

cron依靠crontab文件保存用户定义的任务计划

Empire CMS,phome.net

crontab文件分为两类:分别是系统crontab和用户crontab

系统crontab: 定义在/etc/crontab

用户crontab:定义在/var/spool/cron/USERNAME

我们定义cron任务都是编写crontab文件完成,下面看一下crontab文件内的格式:

每一行的前五段是时间,第六段是命令

MIN HOUR DAY MONTH WEEK COMMAND

时间的取值范围:

MIN:0-59 HOUR:0-23 DAY:1-31 MONTH:1-12 WEEK:0-7(0和7都表示周日)

介绍下文件内符号的用法:

*:对应时间域上的所有有效取值

- : 对应时间域上的连续时间取值 8-18 表示第8到18

, : 对应时间域上的离散时间取值 8,18 表示第8 和第18

*/: 对应时间域上的没多久一次进行取值 例如:*/8 每8min/hour/...一次

通过例子了解一下:

30 17 * * * /sbin/shutdown -h now 每天的5点30分关机

03 02 * * 3,6 /usr/bin/yum clean all 每周3周6的凌晨2点3分清空yum缓存

00 */6 * * * /usr/bin/updatedb 每六小时更新一次数据库

* */6 * * * /usr/bin/updatedb 则表示每第6个小时的每分钟都更新一次

定义自己的crontab:

# crontab -e 编辑当前用户的cron表

# crontab -l 列出当前用户的cron表

# crontab -r 删除当前用户的cron进程

# cron -u USERNAME 管理员权限帮别人定义 crontab -u USERNAME [-l | -r | -e]

当然,我们也可以不打开文件添加内容到crontab中:

echo ''10 1 * * 7 tar -jcf /backup/data-`date '' %F''`.tar.bz2 /data'' >> /var/spool/cron/USERNAME

echo ''10 1 * * 7 tar -jcf /backup/data-`date '' %F''`.tar.bz2 /data'' | crontab

系统crom:

/etc/crontab里面的格式:

SHELL=/bin/bash 定义运行计划任务的解释器

PATH=/sbin:/bin:/usr/sbin:/usr/bin 执行命令的环境变量

Empire CMS,phome.net

MAILTO=root 计划任务的发出者

HOME=/ 家目录

# run-parts

01 * * * * root run-parts /etc/cron.hourly

02 4 * * * root run-parts /etc/cron.daily

22 4 * * 0 root run-parts /etc/cron.weekly

42 4 1 * * root ru

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号