LAH 笔记 cron

来源:互联网 发布:精准医学 大数据 编辑:程序博客网 时间:2024/06/08 04:56

1. cron 周期行执行任务

2. 配置文件

系统任务配置在:/etc/crontab文件,/etc/cron.d目录,/etc/crontab是给系统管理员手动配置用的,/etc/cron.d是一些安装程序复制过来的。

/etc/crontab 利用命令 run-part 执行其他目录中的脚本,一般如:/etc/cron.hourly, /etc/cron.daily,/etc/cron.weekly, /etc/cron.monthly 。

下面是ubuntu 11.04下面的/etc/crontab 主要内容:

root 用户执行,anacron 功能类似 cron



用户自己特定的任务在:/var/spool/cron/crontabs/

不能直接编辑,需要通过crontab命令,查看自己的crontab用命令:crontab -l;编辑用 crontab -e

(具体man crontabq)


3. crontab的格式

1. #开头的是注释,必须定格写

2. 每一条记录格式:minute hour day month weekday [user name] command

可见最小的粒度是每一分钟

user name 不出现在/var/spool/cron中的配置文件中

时间字段的取值范围如下:

minute: 0-59

hour: 0-23

day:1-31

month: 1-12

weekday: 0-6

* 表示匹配所有;一个数字精确匹配;像2-5这样的表示匹配一个区间;像3,5,7表示匹配一个值的列表。

例子:

45 10 * * 1-5

10:45 a.m., Monday through Friday

0,30 * 13 * 5

every half-hour on Friday, or on 13th of the month

command 字段是需要执行的 sh command,不需要用引号

20 1 * * * find /tmp -atime +3 -exec rm -f {} ';'

4. crontab命令用于编辑、管理crontab,具体查看 LAH 8.3

crontab file-name 安装file-name 作为自己的crontab

crontab -e 编辑用户自己的crontab,编辑器由 EDITOR 环境变量指定

crontab -l 在标准输出上列出自己的 crontab

crontab -r 删除crontab,root用户可以删除指定用户的crontab:crontab -u user-name -r 

crontab 不带参数,从标准输入读取crontab;如果不小心进入此模式,此时Ctl+D会删除原来的crontab,因为没有输入,此时应该按Ctl+C结束,这样可以保留原来的 crontab


可以通过/etc/cron.deny和/etc/cron.allow编辑控制那些用户可以提交crontab。如果不存在这两个文件,默认情况下,多数系统只允许root用户提交crontab,debian和ubuntu允许所有用户提交。


5. cron 应用场景

清理文件

处理 log files


6. anacron 和 fcron

anacron 对 cron 做了一些功能上的补充,它可以制定执行周期,记录任务最近执行时间,任务排队等。

anacron 以天为单位执行,运行依赖于cron,cron可以以更小的时间间隔执行anacron。

fcron是为了替代cron而开发的,而不是作为补充。使用它之前需要斟酌。

原创粉丝点击