首页 > CentOS, Linux > Linux crontab 使用详解

Linux crontab 使用详解

一.介绍crontab(crond)      

crond 是linux(Unix) 定时任务触发器,而crontab是输入指令给crond的接口。

工作原理:crond进程启动之后读取配置文件,并将其保存在内存中,接着自己转入到休眠状态。以后每分钟会醒来一次检查配置文件,读取修改过的,并执行为这一刻安排的任务,然后再转入休眠。

任务调度的工作主要分为以下两类:

1、系统执行的工作:系统周期性所要执行的工作,

2、用户执行的工作:某个用户定期要做的工作,比如定期检测Tomcat服务进程是否正常.

二.crontab指令

crontab 指令 参数说明:

-e 设置当前用户计时器
-l 列出当前用户计时器的设置
-r 删除当前用户计时器的设置
-i 交互式模式,删除计时器设置时要先询问,如crontab -ri
[-u user] file  替换其他用户的crontab内容,需相关权限 例如root权限下执行 crontab -u frankwong /var/spool/cron/frankwong1,
[-u user][-e |-l|-r] 编辑其他用户的时程表,需相关权限 例如root权限下执行 crontab -u frankwong -e

用户所建立的crontab文件存于/var/spool/cron目录中,其文件名与用户名一致。

它的格式共分为六段,前五段为时间设定段,第六段为所要执行的命令段

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name command to be executed

可以通过结合下列特殊符号进行个性化时间设置

* 表示任何时刻
, 表示分割,如第一段 10,20,30 表示每个小时的第10,第20和第30分钟
-  表示一个段,如第二段 1-5,就表示1到5点
/n 表示每个n的单位执行一次,如第二段里,*/1, 就表示每隔1个小时执行一次命令

三.运行权限控制

在/etc/cron.deny 和 /etc/cron.allow 分别声明了不能使用crontab指令和能使用crontab指令的用户清单

  • 如果两个文件同时存在,那么/etc/cron.allow 优先。
  • 如果两个文件都不存在,那么只有超级用户可以安排作业。

常用指令

*0 * * * /usr/sbin/ntpdate time.windows.com >> /var/log/ntpdate.log //每天0时进行时间同步

注意点

如果同时指定了“日”和“周”,那么满足两个条件之一就会执行。

分类: CentOS, Linux 标签: , , ,
  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.
*