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多平台发布

相关推荐
菜鸟小九42 分钟前
SSM(MybatisPlus)
java·开发语言·spring boot·后端
不爱编程的小九九44 分钟前
小九源码-springboot051-智能推荐旅游平台
java·spring boot·后端
数据知道1 小时前
Go基础:常用数学函数处理(主要是math包rand包的处理)
开发语言·后端·golang·go语言
期待のcode1 小时前
MyBatis框架—延迟加载与多级缓存
java·数据库·后端·缓存·mybatis
数据知道1 小时前
Go基础:文件与文件夹操作详解
开发语言·后端·golang·go语言
华仔啊1 小时前
Spring 配置混乱?搞懂这两个核心组件,问题真能少一半
java·后端·spring
喂完待续1 小时前
【序列晋升】45 Spring Data Elasticsearch 实战:3 个核心方案破解索引管理与复杂查询痛点,告别低效开发
java·后端·spring·big data·spring data·序列晋升
forever銳2 小时前
java中如何保证接口幂等性
java·后端
IT_陈寒2 小时前
告别低效!用这5个Python技巧让你的数据处理速度提升300% 🚀
前端·人工智能·后端
程序员NEO2 小时前
B站油管抖音一键笔记
后端