关于crond和crontab

本文介绍了 Linux 和 Unix 系统中的 CronTab 命令,详细解释了如何设置周期性执行的任务,包括服务状态查看、启动、编辑及删除等操作。同时还提供了 Cron 文件的语法说明和实例。

crontab是一个指令,常见于Linux和Unix操作系统之中,用于设定周期性被执行的指令,使用service crond status可以查看cron的服务状态(cron服务是一个定时执行的服务,可以通过crontab命令添加或者编辑需要定时执行的任务)如果没有启动,则用service crond start启动它。该命令从标准输入设备读取指令,并将其存放于"crontab"文件中,以供之后读取和行。crond命令每分钟都会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作。


在编辑cron服务时,编辑的内容有一些格式和约定,输入:crontab -u root -e

进入vi编辑模式,编辑的内容一定要符合下面的格式:*/1 * * * * ls >> /tmp/ls.txt

root查看自己的cron设置:crontab -u root -l

root删除fred的cron设置:crontab -u fred -r

查看该用户下的crontab服务是否创建成功, 用 crontab  -l 命令

查看服务是否已经运行用 ps -ax | grep cron

crontab命令选项:

crontab -u         // 设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数 

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

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

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


cron文件语法:

   分     小时    日       月       星期     命令

0-59   0-23   1-31   1-12     0-6     command     (取值范围,0表示周日一般一行对应一个任务)


几个特殊符号的含义:
    “*”代表取值范围内的数字, 
    “/”代表”每”,
    “-”代表从某个数字到某个数字,
    “,”分开几个离散的数字

例子: 

      #MIN HOUR DAY MONTH DAYOFWEEK COMMAND 
      #每天早上6点10分 
      10 6 * * * date 

<think>好的,我现在需要回答用户关于Linux系统中crontabcrond配置文件路径的问题。用户之前已经问过相关问题,我也给出了详细回答,现在用户再次明确询问这两个的配置文件位置,需要结合提供的引用内容来调整回答。 首先,确认用户的问题:用户想知道crontabcrond的配置文件路径。根据引用,crontab的配置文件分为用户级系统级,而crond作为守护进程,可能涉及多个配置文件,比如/etc/crontab、/etc/cron.d/等。需要区分crontab工具crond服务各自的配置位置。 根据引用[1],用户级的crontab文件存放在/var/spool/cron/目录下,每个用户一个文件,如root用户的文件是/var/spool/cron/root。而系统级的配置文件在/etc/crontab/etc/cron.d/目录下。引用[4]提到crond会检查这些文件的变化,无需重启服务。 引用[2]展示了/etc/crontab的结构,包含环境变量系统级任务。引用[5]提到访问控制文件/etc/cron.allow/etc/cron.deny,这需要包含在回答中。此外,日志文件的位置在/var/log/cron(RedHat系)或/var/log/syslog(Debian系),引用[3]提到了这一点。 需要确保回答结构清晰,分点说明用户级系统级的路径,同时提到相关配置文件如cron.allowcron.deny。另外,用户可能混淆crontab(命令用户配置文件)与crond(服务及其相关系统配置文件),需要明确区分。 可能还需要指出,crond本身没有单独的配置文件,而是通过读取上述多个文件目录来执行任务。因此,在回答中应明确说明crond依赖的这些配置文件的位置。 最后,检查是否有遗漏的引用内容,比如引用[4]提到crond每分钟检查的路径,包括/etc/crontab、/etc/cron.d//var/spool/cron,这些都要在回答中涵盖。同时,用户之前的问题涉及到调试日志,因此在回答中可以简要提到日志路径,但用户本次问题主要关注配置文件位置,所以日志部分可以作为补充信息。 总结回答结构: 1. Crontab的配置文件路径: - 用户级:/var/spool/cron/<用户名> - 系统级:/etc/crontab、/etc/cron.d/*、/etc/cron.*/目录 2. Crond相关配置文件: - 访问控制:/etc/cron.allow/etc/cron.deny - 环境变量设置:在/etc/crontab中定义(如SHELL, PATH等) 3. 注意事项:编辑用户级配置文件必须使用crontab -e,直接修改可能出错。 确保引用正确,例如用户级的路径参考引用[1][4],系统级参考引用[2][4],访问控制文件参考引用[5]。</think>##### **Linux系统中crontabcrond配置文件路径详解** 在Linux系统中,**crontab**(用户任务配置文件)**crond**(定时任务守护进程)的配置文件路径如下: --- ### **一、crontab配置文件路径** #### **1. 用户级配置文件** - **路径**:`/var/spool/cron/<用户名>` - 每个用户独立存储,例如: - root用户:`/var/spool/cron/root` - 普通用户test:`/var/spool/cron/test` - **编辑方式**:必须通过`crontab -e`命令修改,直接编辑可能引发格式错误或权限问题[^1][^4]。 #### **2. 系统级配置文件** - **主配置文件**:`/etc/crontab` - **格式**:需指定执行用户(如`root`): ```bash * * * * * root /path/to/command ``` - **环境变量**:该文件通常包含全局环境设置(如`PATH`、`MAILTO`等),示例内容如下[^2]: ```bash SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root ``` - **扩展目录**: - `/etc/cron.d/`:存放第三方应用的独立定时任务文件(每文件需符合cron格式)[^4]。 - 周期任务目录: - `/etc/cron.hourly/`:每小时执行 - `/etc/cron.daily/`:每天执行 - `/etc/cron.weekly/`:每周执行 - `/etc/cron.monthly/`:每月执行 --- ### **二、crond相关配置文件** #### **1. 服务控制文件** - **访问权限控制**: - `/etc/cron.allow`:允许使用`crontab`命令的用户白名单。 - `/etc/cron.deny`:禁止使用`crontab`命令的用户黑名单。 - 若两者均不存在,默认允许所有用户[^5]。 #### **2. 日志文件** - **路径**: - RedHat/CentOS:`/var/log/cron` - Debian/Ubuntu:`/var/log/syslog`(需通过`grep CRON`过滤日志)[^3]。 --- ### **三、关键机制说明** 1. **crond的配置文件加载** crond每分钟自动检查以下位置的变动: - `/etc/crontab` - `/etc/cron.d/`目录 - `/var/spool/cron/`目录下的用户文件 修改后无需重启服务即可生效。 2. **用户级与系统级任务的区别** - **用户级任务**:通过`crontab -e`配置,无需指定执行用户。 - **系统级任务**:需在`/etc/crontab`或`/etc/cron.d/`文件中明确指定执行用户[^1][^2]。 --- ##### **相关问题** 1. 如何通过`/etc/cron.deny`禁止普通用户创建定时任务? 2. 系统级定时任务中`run-parts`命令的作用是什么? 3. 如何避免crontab任务因环境变量缺失导致执行失败? 4. 在`/etc/cron.d/`目录中添加任务文件时需要注意哪些格式规范? [^1]: 用户级crontab文件必须通过`crontab -e`编辑,直接修改`/var/spool/cron/`下的文件可能导致语法错误或权限冲突。 [^2]: `/etc/crontab`中需指定执行用户,且支持全局环境变量配置(如`PATH`、`MAILTO`),适用于系统级任务[^2]。 [^3]: cron日志路径因Linux发行版而异,CentOS系统可通过`/var/log/cron`追踪任务执行情况[^3]。 [^4]: crond服务每分钟自动加载配置文件变更,无需手动重启即可生效[^4]。 [^5]: 通过`/etc/cron.allow``/etc/cron.deny`可灵活控制用户权限,若均不存在则默认允许所有用户使用crontab[^5]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值