ubuntu定时器怎么设置间隔
导读:Ubuntu 定时器设置间隔 一、使用 cron 设置固定间隔 编辑当前用户的定时任务列表:运行命令:crontab -e;如需以 root 身份设置,使用:sudo crontab -e。 基本语法:分钟 小时 日 月 星期 命令(五个...
Ubuntu 定时器设置间隔
一、使用 cron 设置固定间隔
- 编辑当前用户的定时任务列表:运行命令:crontab -e;如需以 root 身份设置,使用:sudo crontab -e。
- 基本语法:分钟 小时 日 月 星期 命令(五个时间字段 + 要执行的命令)。
- 间隔写法要点:
- 斜杠“/”表示“每”,如分钟字段的 */5 表示每 5 分钟执行一次。
- 逗号“,”列举离散值,连字符“-”表示范围,例如 9-17 表示 9点到17点。
- 常用管理命令:crontab -l(查看)、crontab -r(删除全部,谨慎)。以上操作即可完成分钟级及小时级的固定间隔调度。
二、常见间隔示例
- 每 5 分钟执行一次:
*/5 * * * * /usr/local/bin/check_status - 每 2 小时执行一次(整点):
0 */2 * * * /scripts/backup.sh - 每天 02:00 执行:
0 2 * * * /scripts/daily.sh - 工作日(周一至周五)09:00-18:00 每小时执行一次:
0 9-18 * * 1-5 /usr/sbin/ntpdate pool.ntp.org - 每月 1 号 00:00 清理日志:
0 0 1 * * find /var/log -name "*.log" -type f -delete
以上示例覆盖了分钟、小时、日、月、周的常见“每隔 N 单位”的写法。
三、需要秒级间隔的处理
- cron 最小粒度为分钟,无法直接写“每 10 秒”。可用“秒级循环脚本 + 每分钟启动一次”的方式实现:
- 创建脚本(如 /usr/local/bin/run_every_10s.sh):
#!/usr/bin/env bash while true; do /usr/local/bin/your_task.sh sleep 10 done - 赋权:chmod +x /usr/local/bin/run_every_10s.sh
- 用 cron 每分钟拉起一次脚本(避免重叠运行可用 flock 锁):
* * * * * flock -n /tmp/run_every_10s.lock /usr/local/bin/run_every_10s.sh > > /var/log/every_10s.log 2> & 1
- 创建脚本(如 /usr/local/bin/run_every_10s.sh):
- 说明:也可用 systemd 定时器实现秒级任务(更现代),但上述方法在 Ubuntu 上通用、易维护。
四、排错与最佳实践
- 使用绝对路径调用命令与脚本;在 crontab 顶部显式声明环境变量,例如:
SHELL=/bin/bash PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin - 将标准输出与错误输出重定向到日志,便于排查:
*/5 * * * * /path/to/script.sh > > /var/log/cron.log 2> & 1 - 脚本需具备可执行权限:chmod +x /path/to/script.sh
- 查看任务是否生效:crontab -l;如修改系统级任务,确保 cron 服务处于运行状态(Ubuntu 通常默认已启用)。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: ubuntu定时器怎么设置间隔
本文地址: https://pptw.com/jishu/774738.html
