Linux实战:精通 Crontab 任务调度 (RHCSA & DevOps)

发布: (2025年12月11日 GMT+8 12:38)
6 min read
原文: Dev.to

Source: Dev.to

引言

任务自动化是每位 Linux 系统管理员的核心职责。无论是执行夜间备份、轮转日志、生成报告,还是触发 DevOps 工作流,cron 调度器 都提供了一种可靠且灵活的方式来运行周期性任务。

本文提供了一份完整、符合 RHCSA 要求的 crontab 使用指南,结合真实的业务场景和实用示例,帮助你立即上手。

什么是 Cron 与 Crontab?

cron 是 Linux 内置的调度程序,用于在特定时间间隔运行命令或脚本。定义计划任务的配置文件称为 crontab

Cron 适用于:

  • 自动化系统维护
  • 备份与清理任务
  • 日志轮转与报告
  • 定时数据传输
  • 合规作业与监控

Cron 通过无需人工干预来自动执行重复任务,从而提升一致性和可靠性。

Cron 语法说明

每条 cron 条目由 五个时间字段 加上要执行的命令组成:

MIN   HOUR   DOM   MON   DOW   CMD

重要提示: 在编辑器中,字段之间必须使用 TAB 键分隔,不能 用空格键。

字段含义

字段描述取值范围
MIN分钟0–59
HOUR小时0–23
DOM月份中的日期1–31
MON月份1–12
DOW星期几0–6 (Sun=0, Mon=1 … Sat=6)
CMD要执行的命令

管理 Cron 服务

检查 cron 服务是否在运行:

systemctl status crond

设置 cron 服务随系统启动:

systemctl enable crond

重启 cron 服务:

systemctl restart crond

用户 Crontab 与任务调度

每个用户都可以拥有自己的 crontab。

以特定用户身份编辑 crontab

crontab -e -u username

示例:为用户 natasha 安排在 6 月 15 日 14:23 打印信息的任务

su natasha
crontab -e

在编辑器中添加:

23  14  15  06  *   /usr/bin/echo hello

ESC,然后输入 :wq 保存。

验证:

crontab -l -u natasha

Cron 表达式示例

  • 每分钟一次

    * * * * * /usr/bin/echo "Running every minute"
  • 每 5 分钟一次

    */5 * * * * /usr/bin/date >> /tmp/every5min.log
  • 在前 10 分钟内每 2 分钟一次

    0-10/2 * * * * /usr/bin/echo "Running every 2 mins for first 10 mins"
  • 每天两次,分别在 1:00 AM 和 11:00 AM

    0 1,11 * * * /usr/bin/echo "Twice a day task"
  • 仅工作日,在 9 AM–6 PM 之间

    0 9-18 * * 1-5 /usr/bin/echo "Weekday work hours task"

特殊 Cron 关键字

有些调度不需要完整的五个字段。Cron 提供了便利的快捷方式:

关键字等价调度
@yearly / @annually0 0 1 1 *
@monthly0 0 1 * *
@daily / @midnight0 0 * * *
@hourly0 * * * *
@weekly0 0 * * 0
@reboot系统启动后运行一次

示例:在每年 1 月 1 日 00:00 运行脚本,发送新年系统状态报告

@yearly /usr/bin/echo "Happy New Year! System status report triggered." >> /var/log/newyear.log

同时运行多个任务

可以在同一用户的 crontab 中安排多行任务:

# 每天 14:23 运行一次
23 14 * * * /usr/bin/echo hello

# 每 5 分钟运行一次
*/5 * * * * /usr/bin/date >> /home/natasha/data.log

# 每周日午夜运行一次
0 0 * * 0 /usr/bin/echo hiyaa

真实业务案例

场景:零售企业的自动化报告与合规

一家零售公司需要每日将销售、库存快照以及错误日志自动发送给分析团队。

使用 crontab:

  • 夜间库存导出在 23:59 执行。
  • 合规日志归档每 6 小时 执行一次。
  • 备份脚本每天 02:00 执行。
59 23 * * * /usr/local/bin/export_inventory.sh
0 */6 * * * /usr/local/bin/archive_logs.sh
0 2 * * * /usr/local/bin/db_backup.sh

业务影响

  • 减少 IT 与运营团队的手工工作量
  • 确保合规报告始终准时生成
  • 通过自动备份防止数据丢失
  • 通过消除人为错误提升准确性

Cron 任务成为公司 自动化骨干 的一部分,支撑 DevOps 工作流、审计以及运营可靠性。

结论

Crontab 是 Linux 中最强大的自动化工具之一。只要掌握了 cron 语法、服务管理、调度模式以及真实业务场景,你就能在 Linux 系统上自动化几乎所有重复性任务。

练习本文示例,构建自己的自动化流程,并将 cron 融入 RHCSA 考试准备和 DevOps 项目中。

Back to Blog

相关文章

阅读更多 »