Unix 指南/说明/计划作业
外观
cron 是 UNIX/Linux 系统中的一个自动调度程序,它执行由系统、root 或单个用户计划的作业(脚本)。调度信息包含在 crontab 文件中(每个用户的文件不同且独立)。当 cron 守护进程启动时,它会搜索 crontab 文件,这些文件位于 /var/cron/tabs 目录中,以用户名命名。cron 守护进程每分钟唤醒一次,并检查 crontab 文件中是否安排了任何要执行的作业。每次 cron 守护进程唤醒以检查 crontab 文件时,它还会检查 /etc/crontab 文件中文件的时间戳是否修改,它会跟踪并记录这些修改。当你简单地“touch”/etc/crontab 文件时,cron 守护进程会捕获它,并最终停止执行 crontab 中的计划作业 - 这就是停止 cron 守护进程的方法。为了让 cron 守护进程继续运行计划作业,你需要重新启动它(重启它)。
- 当用户列在 /etc/cron.allow 文件中时,将授予访问权限
- 否则,如果在 /etc/cron.deny 中找到了用户名,则将拒绝访问
- 如果这两个文件都不存在,那么根据站点相关的配置参数,只有超级用户可以访问,或者所有用户都可以访问。
- 对于标准的 Debian 系统(包括 Ubuntu),当这两个文件都不存在时,所有用户都将获得访问权限。
- 对于 Fedora 系统,当这两个文件都不存在时,只有超级用户将获得访问权限。
- /var/spool/cron/username 文件:每个单独的用户(由用户名标识)控制他或她自己的独立文件
- /etc/crontab 文件:这是**系统 crontab** 文件。只有 root 才有权限修改此文件。
- /etc/cron.d 目录。放置在此目录中的每个文件都与 /etc/crontab 格式相同。只有 root 才有权限创建或修改此目录中的文件。
- /etc/cron.hourly、/etc/cron.daily、/etc/cron.weekly 和 /etc/cron.monthly 目录
- 这些目录中的每个文件都是一个 shell 脚本,它在 /etc/crontab 文件中指定的时间运行(默认情况下,分别在小时后的第一分钟,每天凌晨 4:02,星期日凌晨 4:22,以及每月第一天凌晨 4:42)。
- 只有 root 才有权限创建或修改这些目录中的文件。
* * * * * command to be executed - - - - | | | | | | | | | ----- day of week (0 - 6) (Sunday=0) | | | ------- month (1 - 12) | | --------- day of month (1 - 31) | ----------- hour (0 - 23) ------------ min (0 - 59)
- 任何字段中的星号 (*) 表示该字段的所有可能值。
- 可以使用值列表、值范围和增量。示例
- 列表:日期可以表示为**列表 Mon,Wed,Fri**。
- 范围:小时可以指定为**范围 9–5**
- 增量:**0–31/3in** 第三个字段表示每月的第三天
- ***/5** 表示每五分钟
- 可以指定任何变量来微调作业将运行的环境。示例
- **MAILTO=otheruser** 变量可以使邮件发送给除提交 cron 作业的用户之外的用户
- crontab −l : 列出您自己的个人 crontab 文件的当前内容
- crontab −r : 删除所有 crontab 条目
- crontab −e : 编辑 crontab 文件
- ps -e |grep cron : 显示 cron 守护进程是否正在运行的状态。
- /usr/sbin/cron & : 启动用户 cron 守护进程。