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

    时间范围(从 ab)。
    示例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/syslogjournalctl -u cron 查看。


注意事项

  1. 环境变量

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

  2. 权限限制

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

  3. 路径问题

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

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

本文由mdnice多平台发布

相关推荐
WanderInk2 小时前
深入解析:Java Arrays.sort(intervals, Comparator.comparingInt(a -> a[0])); 一行代码的背后功力
java·后端·算法
codeGoogle3 小时前
“ASIC项目90%会失败”,黄仁勋的“诅咒”劝退华为?
后端
追逐时光者3 小时前
一款基于 .NET 开源免费、轻量快速、跨平台的 PDF 阅读器
后端·.net
默默地离开4 小时前
前端开发中的 Mock 实践与接口联调技巧
前端·后端·设计模式
杨荧5 小时前
基于爬虫技术的电影数据可视化系统 Python+Django+Vue.js
开发语言·前端·vue.js·后端·爬虫·python·信息可视化
在雨季等你6 小时前
奋斗在创业路上的老开发
android·前端·后端
转转技术团队6 小时前
游戏账号大图生成
java·后端
程序员爱钓鱼6 小时前
Go语言实战案例-批量重命名文件
后端·google·go
大熊计算机6 小时前
大模型推理加速实战,vLLM 部署 Llama3 的量化与批处理优化指南
后端
程序员爱钓鱼6 小时前
Go语言实战案例-遍历目录下所有文件
后端·google·go