Chinaunix首页 | 论坛 | 博客
  • 博客访问: 598199
  • 博文数量: 129
  • 博客积分: 6240
  • 博客等级: 准将
  • 技术积分: 1765
  • 用 户 组: 普通用户
  • 注册时间: 2009-03-18 15:42
文章分类

全部博文(129)

文章存档

2015年(1)

2012年(3)

2011年(6)

2010年(14)

2009年(105)

我的朋友

分类: LINUX

2009-03-26 17:50:39

crontab命令的功能是在一定的时间间隔调度一些命令的执行。在/etc目录下有一个crontab文件,这里存放有系统运行的一些调度程序。每个用户可以建立自己的调度crontab。

/usr/lib/cron/cron.allow表示谁能使用crontab命令。如果它是一个空文件表明没有一个用户能安排作业。如果这个文 件不存在,而有另外一个文件/usr/lib/cron/cron.deny,则只有不包括在这个文件中的用户才可以使用crontab命令。如果它是一 个空文件表明任何用户都可安排作业。两个文件同时存在时cron.allow优先,如果都不存在,只有超级用户可以安排作业。

部分参数说明 
crontab file [-u user]-用指定的文件替代目前的crontab。 
crontab-[-u user]-用标准输入替代目前的crontab. 
crontab-1[user]-列出用户目前的crontab. 
crontab-e[user]-编辑用户目前的crontab. 
crontab-d[user]-删除用户目前的crontab. 
crontab-c dir- 指定crontab的目录。 
crontab文件的格式:M H D m d cmd. 
M: 分钟(0-59)。 
H:小时(0-23)。 
D:天(1-31)。 
m: 月(1-12)。 
d: 一星期内的天(0~6,0为星期天)。 
cmd要运行的程序,程序被送入sh执行,这个shell只有USER,HOME,SHELL这三个环境变量。


作业与它们预定的时间储存在文件/usr/spool/cron/crontabs/username里。username使用户名,在相应的文 件中存放着该用户所要运行的命令。命令执行的结果,无论是标准输出还是错误输出,都将以邮件形式发给用户。文件里的每一个请求必须包含以spaces和 tabs分割的六个域。前五个字段可以取整数值,指定何时开始工作,第六个域是字符串,称为命令字段,其中包括了crontab调度执行的命令。

比如说root查看自己的cron设置:crontab -u root -l
再例如,root想删除fred的cron设置:crontab -u fred -r
在编辑cron服务时,编辑的内容有一些格式和约定,输入:crontab -u root -e
进入vi编辑模式,编辑的内容一定要符合下面的格式:*/1 * * * * ls >> /tmp/ls.txt
编辑/etc/crontab文件,在末尾加上一行: 30 5 * * * root init 6 这样就将系统配置为了每天早上5点30自动重新启动。
需要将crond设置为系统启动后自动启动的服务,可以在/etc/rc.d/rc.local 中,在末尾加上service crond start
如果还需要在系统启动十加载其他服务,可以继续加上其他服务的启动命令。
比如: service mysqld start

基本用法:
1. crontab -l
  列出当前的crontab任务
 
2. crontab -d
  删除当前的crontab任务
 
3. crontab -e (solaris5.8上面是 crontab -r)
  编辑一个crontab任务,ctrl_D结束
 
4. crontab filename
  以filename做为crontab的任务列表文件并载入
让配置文件生效:得重新启动cron,切记,既然每个用户下的cron配置文件修改后。也要重新启动cron服务器。
#service crond restart

下面是一个例子文件: 
#MIN HOUR DAY MONTH DAYOFWEEK COMMAND 
#每天早上6点10分 
10 6 * * * date 

#每两个小时 
0 */2 * * * date 

#晚上11点到早上8点之间每两个小时,早上部点 
0 23-7/2,8 * * * date 

#每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点 
0 11 4 * mon-wed date 

#1月份日早上4点 
0 4 1 jan * date 
范例 
lark:~>crontab-1 列出用户目前的crontab. 
#MIN HOUR DAY MONTH DAYOFWEEK COMMAND 
10 6 * * * date 
0 */2 * * * date 
0 23-7/2,8 * * * date 

阅读(468) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~