【Linux】crond机制以及cronttab命令

来源:互联网 发布:金立手机系统优化 编辑:程序博客网 时间:2024/06/05 06:16

Linux中有一个命令可以定期来执行系统任务,这就是crond服务。

Linux也提供用户控制例行性工作调度的命令(crontab)。

可以用一下命令来控制crond服务

    service crond start    //启动服务    service crond stop     //关闭服务    service crond restart  //重启服务    service crond reload   //重新载入配置    service crond status   //查看服务状态 

权限

为了安全性,可以限制使用crontab的用户账号,使用的限制数据:
/etc/cron.allow
将可以使用的crontab的账号写入其中,若不在这个文件内的用户则不可使用crontab

/etc/cron.deny
将不可使用crontab的账号写入其中,若未记录到这个文件当中的用户,就可以使用crontab。

以优先级来说,/etc/cron.allow比/etc/cron.deny要优先,一般来说,建议只保留一个即可,系统默认是保留/etc/cron.deny。

当用户使用crontab这个命令新建工作调度之后,这项工作就会被记录到/var/spool/cron/里面,而且以该账号来判别的。
举例:tom 使用crontab后,他的工作会被记录到/var/spool/cron/tom里面去。

cron执行的每一项工作都会被记录到/var/log/cron这个日志文档中

crontab命令

这里写图片描述

时间段分别代表的含义0   12  *   *    *分  时  日   月   周

不能使用vi直接编辑该文件,因为可能由于输入语法错误,会导致无法执行cron。
使用crontab -e 命令来编辑

每项工作(每行)的格式都是具有六个字段,这六个字段的意义如下表:

这里写图片描述

比较有趣的是那个”周”,周的数字为0或7时,代表的是星期天的意思。
下图介绍一下辅助的字符

这里写图片描述

例子
这里写图片描述
这里写图片描述

系统的配置文件:/etc/crontab

crontab -e 命令是针对用户的cron设计的,如果是系统的例行性任务时,就需要系统的配置文件/etc/crontab
其实 crontab -e 其实是/usr/bin/crontab这个文件
而etc/crontab 是系统的配置文件

这里写图片描述

看这个文件内容 其实与刚才的crontab -e 的内容几乎一样,但是还有几个地方不一样

1、MAILTO=root

这个选项的意思是说,当 /etc/crontab 这个档案中的例行性命令发生错误时,会将错误讯息或者是屏幕显示的讯息传给谁?由于 root 并无法再用户端收信,因此,我通常都将这个 e-mail 改成自己的账号,好让我随时了解系统的状态!

2、PATH=….
这里就是输入执行文件的查找路径,使用默认的路径设置就已经很足够了。

3、01 * * * * root run-parts /etc/cron.hourly:

在 #run-parts 这一行以后的命令,我们可以发现,五个数字后面接的是 root ,这一行代表的是『执行的级别为root身份』当然,你也可以将这一行改为成其他的身份!而 run-parts代表后面接的 /etc/cron.hourly 是『一个目录内(/etc/cron.hourly)的所有可执行文件』,也就是说,每个小时的01分,系统会以root身份去/etc/cron.hourly这个目录下执行所有可执行的文件!后面三行也是类似的意思!你可以到 /etc/ 底下去看看,系统本来就预设了这4个目录!你可以将每天需要执行的命令直接写到/etc/cron.daily即可,还不需要使用到crontab -e的程式!

举例:
这里写图片描述
这里写图片描述

注意:周与日、月不可同时并存

这里写图片描述

原创粉丝点击