【RH134知识点问答题】第2章 调度未来任务
Linux定时任务管理摘要:crontab是Linux系统定时任务调度的核心工具。用户级任务通过crontab -e配置,时间格式包含5个字段(分、时、日、月、周),支持*/n间隔、a-b范围和a,b列表等特殊符号。系统级任务建议放在/etc/cron.d/目录或对应的cron.hourly/daily/weekly/monthly目录中。示例:配置周一到周五每2分钟记录时间的任务格式为"
目录
2. 如果需要以当前用户身份计划周期性作业,在上午 8 点到晚上 9 点之间每两分钟一次输出当前日期和时间,该作业只能在周一到周五运行,周六或周日不能运行。要怎么做?
3. 要计划周期性系统作业,应该将自定义的 crontab 文件放入哪个位置?
在 Linux 系统管理中,定时任务调度是提高工作效率和保证系统维护的重要手段。无论是用户级作业还是系统级作业,掌握 crontab 的使用方法都是必备技能
1. crontab 文件中的用户作业时间格式怎么解释?
crontab 文件用于定义用户的周期性任务,其时间字段共有五个,依次对应 分钟、小时、日期、月份、星期。每个字段都支持多种特殊符号,灵活配置任务执行时间。
| 字段 | 含义 | 取值范围 | 常用符号及说明 |
|---|---|---|---|
| 第1个 | 分钟 | 0-59 | * 每分钟;*/n 每隔 n 分钟;a,b 指定多分钟;a-b 范围分钟 |
| 第2个 | 小时 | 0-23 | * 每小时;*/n 每隔 n 小时;a-b 范围小时 |
| 第3个 | 日期 | 1-31 | * 每天;1,15 每月 1 号和 15 号 |
| 第4个 | 月份 | 1-12 | * 每月;1-6 1 到 6 月 |
| 第5个 | 星期 | 0-6 | * 每周;1-5 周一到周五(可写 Mon-Fri);6,0 周六、周日 |
在五个字段之后,需要紧跟要执行的命令。建议使用绝对路径,避免因为 PATH 环境变量不同而找不到命令。
特殊符号优先级:
*/n(间隔) >a-b(范围) >a,b(列表) >*(任意)。
2. 如果需要以当前用户身份计划周期性作业,在上午 8 点到晚上 9 点之间每两分钟一次输出当前日期和时间,该作业只能在周一到周五运行,周六或周日不能运行。要怎么做?
打开当前用户 crontab 编辑界面:
crontab -e
(默认使用 vim 编辑器)
添加任务:
*/2 8-21 * * 1-5 /usr/bin/date >> /home/student/date_log.txt
*/2:每两分钟8-21:8 点到 21 点* *:每天,每月1-5:周一到周五/usr/bin/date >> /home/student/date_log.txt:输出时间到日志文件
保存并退出 (:wq),提示 crontab: installing new crontab 表示成功。
查看已配置任务:
crontab -l
验证执行结果:等待 2 分钟后,查看日志文件
cat /home/student/date_log.txt
若能看到时间记录,则任务生效。
3. 要计划周期性系统作业,应该将自定义的 crontab 文件放入哪个位置?
1. 精确时间控制的系统作业
系统级作业需要放在 /etc/cron.d/ 目录下,不建议直接修改 /etc/crontab,以防系统升级覆盖。
2. 固定频率的系统作业
如果作业只需按固定频率(每小时、每天、每周、每月)执行,可直接将可执行脚本放入对应目录:
-
每小时执行:
/etc/cron.hourly/ -
每天执行:
/etc/cron.daily/ -
每周执行:
/etc/cron.weekly/ -
每月执行:
/etc/cron.monthly/ -
这些目录中的脚本无需编写时间字段,cron 会根据目录名称自动按对应频率执行。
注意:这些目录中包含可执行的 shell 脚本(记得
chmod +x script_name)
系统通过 run-parts 命令调用这些目录下的脚本。/etc/anacrontab 文件确保重要任务即使系统关闭或重启,也不会错过执行,延迟时间可通过 Delay in minutes 参数控制。
总结
-
用户作业:用
crontab -e配置,使用五个时间字段精确控制任务周期。 -
系统作业:放在
/etc/cron.d/或对应的 cron 目录,保证系统级任务可靠执行。 -
任务调试:日志重定向是验证任务生效的最佳方法。
-
安全和规范:使用绝对路径,避免与系统命令冲突。
更多推荐

所有评论(0)