分类: 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介绍
crond是crontab的一个守护进程。d代表daemon,守护进程是生存期比较长的一个进程,一般linux下的一个进程都是和一个终端中运行着,终端一关闭,进程也就退出,但是守护进程一般是在系统装入时启动,在系统关闭时结束,在系统的后台运行着。
4. crontab命令的时间编辑
a) 每天早上9:10执行: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)