linux定时器使用

在Linux系统中,crontab 是用于设置定时任务的工具。有什么用呢?像我们平时在服务器上要定期定时执行的任务,就可以交给这个crontab来干,比如定期压缩服务产生的日志文件、定期执行数据库分表、定期某些服务组件重启等。


Crontab 基本语法

每个定时任务由6个字段组成(前5个表示时间,第6个是命令):

复制代码
* * * * * 要执行的命令
│ │ │ │ │
│ │ │ │ └── 星期几 (0-7,0和7都代表周日)
│ │ │ └──── 月份 (1-12)
│ │ └────── 日 (1-31)
│ └──────── 小时 (0-23,24小时设置)
└────────── 分钟 (0-59)

时间字段规则

  1. \*

    任意值(每分钟/每小时等)。
    示例 :* * * * * 表示每分钟执行一次。

  2. */n

    每隔 n 个单位执行一次。
    示例 :*/5 * * * * 每5分钟执行一次。

  3. a-b

    时间范围(从 a 到 b)。
    示例 :0 9-18 * * * 每天9点到18点整点执行。

  4. a,b,c

    多个离散时间点。
    示例 :0 1,13 * * * 每天1点和13点执行。

  5. 特殊字符

    • @reboot:系统启动时运行。
    • @daily/ @hourly:简化常见周期(等价于 0 0 * * * 和 0 * * * *)。

常用示例

  1. 每天凌晨3点执行

    复制代码
    0 3 * * * /path/to/script.sh
  2. 每周末(周日)备份

    复制代码
    0 2 * * 7 /usr/bin/backup
  3. 工作日每30分钟检查

    复制代码
    */30 * * * 1-5 /usr/bin/check_status
  4. 每月1号和15号清理日志

    复制代码
    0 0 1,15 * * /usr/bin/clean_logs

如何编辑Crontab

  1. 打开当前用户的crontab:

    复制代码
    crontab -e
  2. 查看现有任务:

    复制代码
    crontab -l
  3. 日志路径 :

    执行日志通常可在 /var/log/syslog 或 journalctl -u cron 查看。


注意事项

  1. 环境变量 :

    cron任务默认无用户环境变量,建议在脚本中显式设置(如 PATH)。

  2. 权限限制 :

    普通用户只能编辑自己的crontab,root用户可通过 crontab -u username -e 管理其他用户。

  3. 路径问题 :

    命令建议使用绝对路径(如 /usr/bin/python3 而非 python3)。

如果需要更复杂的调度逻辑(如依赖任务),可考虑使用 systemd timers 或第三方工具(如 anacron)。

本文由mdnice多平台发布

相关推荐
小码哥_常3 小时前
一套自己部署的 IM,客户端是同一份 Flutter
前端·后端
学长毕设6 小时前
基于SpringBoot的实验室资产管理系统
java·spring boot·后端
努力的小雨8 小时前
给 AI 眼镜开发应用有多难?我从零做了一个陪练,还上架了
后端
excel9 小时前
双 Token 与前端使用 Crypto 公私钥鉴权换 Token,哪种方案更好?
前端·后端
AI入职记10 小时前
AI 代码审查召回率实测:20 个骗过单元测试的变异体,抓到 13 个
后端
浮链序10 小时前
别让 AI 客服把用户当猴耍:百来行 Python 把「转人工」做成一条高可用链路
后端
属于自己的天空10 小时前
Claude Code 插件完全指南:官方市场怎么用,怎么自己写(v2.1.269+)
后端
Tokenfree10 小时前
给大模型调用加一个熔断器:60 行代码,三个阈值
后端
Jason_chen10 小时前
Linux 进程调度器深入解析与实时性优化指南(基于 Linux 5.10+)
后端
1360967572310 小时前
三个 Agent 干同一个活,职责边界到底该怎么划
后端