Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1884747
  • 博文数量: 217
  • 博客积分: 4362
  • 博客等级: 上校
  • 技术积分: 4180
  • 用 户 组: 普通用户
  • 注册时间: 2009-09-20 09:31
文章分类

全部博文(217)

文章存档

2017年(1)

2015年(2)

2014年(2)

2013年(6)

2012年(42)

2011年(119)

2010年(28)

2009年(17)

分类: LINUX

2012-02-20 15:40:06

1.       crontab介绍

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

Crontab主要有4个参数:

-l     #列出某个用户的cron服务的详细内容

-u    #设定某个用户的cron服务,一般是root用户使用此选项

-r     #删除某个用户的cron服务

-e    #编辑某个用户的cron服务

2.       cron介绍

cron是一个linux下的定时执行工具,可以在无需人工干预的情况下运行作业。由于Cron Linux的内置服务,但它不自动起来,可以用以下的方法启动、关闭这个服务:

/sbin/service crond start //启动服务

/sbin/service crond stop //关闭服务

/sbin/service crond restart //重启服务

/sbin/service crond reload //重新载入配置

你也可以将这个服务在系统启动的时候自动启动:

/etc/rc.d/rc.local这个脚本的末尾加上:

/sbin/service crond start

Cron服务提供了crontab命令来设定cron服务的。

3.    crond介绍

crondcrontab的一个守护进程。d代表daemon,守护进程是生存期比较长的一个进程,一般linux下的一个进程都是和一个终端中运行着,终端一关闭,进程也就退出,但是守护进程一般是在系统装入时启动,在系统关闭时结束,在系统的后台运行着。

4.    crontab命令的时间编辑

a)      每天早上910执行:10 9 * * *

b)     每两小时分执行一次:10 */2 * * *

c)      晚上11点到早上9点,每两个小时执行一次:0 23-9/2 * * *

5.    crontab不执行

crontab有时候会因为环境变量的问题不能执行命令,另外,每条JOB 执行完毕之后,系统会自动将输出发送邮件给当前系统用户。日积月累,非常的多,甚至会撑爆整个系统。所以每条 JOB 命令后面进行重定向处理是非常必要的: >/dev/null 2>&1

6.    crond的配置文件/etc/crontab


说明:

SHEL=/bin/bash            #基于什么shell来运行

PATH=/sbin:/bin:/usr/sbin:/usr/bin

#指定目录中有文件命令时候,不需要指明全路径(我觉得这个就是环境变量啊)

MAILTO=root         #使用cron命令时,通过邮件的方式通知root用户

HOME=/             #/etc/crontab相关的主目录为根目录

下面的内容就是要写的时间和需要运行的程序~

其中run-parts命令是指出运行指定目录下的某个脚本,例如:

0 * * * * root run-parts /etc/cron.hourly       #每一小时之后就会运行cron.hourly脚本

7.    用户自己的cron

每一个用户可以设置自己的cron服务,只要这个用户没有在/etc/cron.deny表中就可,他就可以使用crontab –e命令来启动自己的cron文件。

用户自己编辑的cron服务,会在/var/spool/cron/User_name文件中记录滴。。。

8.    cron的访问控制

默认情况下,所有用户都能访问cron工具,要对cron进行访问控制,是通过/etc/cron.allow文件和/etc/cron.deny文件进行的。如果这两个文件都不存在的时候,表示所有的用户都可以访问cron工具;cron.allow文件的优先权高于cron.deny文件,也就是说,如果同时存在这两个文件,那么cron.deny文件就失效了,只有cron.allow文件起作用。

9.    使用at命令运行一次

使用cron的缺点是任务要经常运行,如果我们要让任务运行一次的时候,可以使用at命令。

at now + 1 minutes      #1分钟后执行at任务

atq         #查询at的任务

atrm No.    #删除指定编号的at任务

 

参考资料:

1

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