Go to main content

手册页部分 8:系统管理命令

退出打印视图

更新时间: 2018年8月8日 星期三
 
 

cron(8)

名称

cron - 时钟守护进程

用法概要

/usr/sbin/cron 

描述

cron 启动在指定日期和时间执行命令的进程。

可以根据目录 /var/spool/cron/crontabscrontab 文件中的指令向 cron 指定定期执行的命令。用户可以使用 crontab(1) 命令提交自己的 crontab 文件。可以使用 at(1) 命令提交仅执行一次的命令。

cron 仅在自己的进程初始化阶段以及 crontabat 命令运行时,检查 crontabat 命令文件。这样可以降低按计划的间隔定期检查新的或更改文件所带来的系统开销。

因为 cron 从不退出,它应该仅执行一次。这通常由 svc:/system/cron:default 服务来完成。文件 /etc/cron.d/FIFO 用作锁定文件,用于防止执行多个 cron 实例。

cron 捕获作业的 stdoutstderr 流的输出,如果输出不为空,将其通过邮件发送给用户。如果作业不生成输出,则不向用户发送邮件。例外情况是作业为 at(1) 作业并且在提交作业时指定了 –m 选项。

如果您的帐户被锁定或过期,将不执行 cronat 作业。请查阅 shadow(5) 以确定哪些帐户未锁定且未过期。

跨时区设置 cron 作业

cron 守护进程的时区为 cron 条目设置系统范围的时区。此缺省的系统范围值使用 /etc/default/init 设置。可以在用户的 crontab 文件中覆盖 cron 条目的时区;请参见 crontab(1)

如果使用某种形式的夏时制夏季/冬季时间,则计划在切换期间执行的作业可以执行一次、两次或根本不执行。

设置 cron 缺省值

要记录 cron 执行的操作,必须在 /etc/default/cron 文件中指定 CRONLOG=YES。如果指定 CRONLOG=NO,将不执行日志记录。保留日志是用户可配置选项,因为 cron 通常创建大量日志文件。

通过在 /etc/default/cron 中使用 PATH=,可以为 user cron 作业指定 PATH。通过在 /etc/default/cron 中使用 SUPATH =,可以为 root cron 作业设置 PATH。请慎重考虑设置 PATH 和 SUPATH 的安全影响。

/etc/default/cron 文件示例:


CRONLOG=YES
PATH=/usr/bin

此示例启用了日志记录并将非根作业使用的缺省 PATH 设置为 /usr/bin。根作业继续使用 /usr/bin

cron 日志文件由 logadm(8) 定期轮转。

文件

/etc/cron.d

cron 目录

/etc/cron.d/FIFO

锁定文件

/etc/default/cron

cron 缺省设置文件

/var/cron/log

cron 历史记录信息

/var/spool/cron

假脱机区域

/etc/cron.d/queuedefs

atbatchcron 的队列描述文件

/etc/logadm.conf

logadm 的配置文件

属性

有关下列属性的说明,请参见 attributes(7)

属性类型
属性值
可用性
system/core-os

另请参见

at(1)crontab(1)sh(1)svcs(1)queuedefs(5)shadow(5)attributes(7)rbac(7)smf(7)smf_security(7)logadm(8)svcadm(8)

附注

cron 作业在单独的 shell 调用中执行,并在没有控制终端的单独进程组中运行。从调用环境继承的开放式文件描述符、陷阱和优先级都会丢失。

cron 服务由服务管理工具 smf(7) 管理,其服务标识符为:

svc:/system/cron:default

可以使用 svcadm(8) 来对此服务执行管理操作(如启用、禁用或请求重新启动)。可以使用 svcs(1) 命令来查询服务的状态。大多数管理操作都可以委托给具有 solaris.smf.manage.cron 授权的用户(请参见 rbac(7)smf_security(7))。

诊断

cron 执行的所有操作的历史记录存储在 /var/cron/log 中,还有可能存储在 /var/cron/olog 中。