ubuntu定时器配置步骤
导读:Ubuntu 定时器配置步骤 一 使用 Cron 配置定时任务 安装与启动 安装:sudo apt-get update && sudo apt-get install -y cron 启动与开机自启:sudo syst...
Ubuntu 定时器配置步骤
一 使用 Cron 配置定时任务
- 安装与启动
- 安装:sudo apt-get update & & sudo apt-get install -y cron
- 启动与开机自启:sudo systemctl start cron;sudo systemctl enable cron
- 查看状态:sudo systemctl status cron
- 编辑任务
- 当前用户:crontab -e;root 用户:sudo crontab -e
- 时间格式:分 时 日 月 周 命令(5 个时间字段 + 命令)
- 常用写法示例:
- 每天 08:00 执行脚本:0 8 * * * /home/user/backup.sh
- 每 15 分钟执行:*/15 * * * * /usr/local/bin/your_task.sh
- 常用管理
- 查看任务:crontab -l
- 删除/禁用:crontab -e 注释或删除对应行;或 sudo crontab -r(谨慎)
- 脚本与路径
- 给脚本可执行权限:chmod +x /path/to/script.sh
- 在 crontab 中使用绝对路径,必要时在顶部设置环境变量,例如:
- PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
- 日志查看
- 启用日志:编辑 /etc/rsyslog.d/50-default.conf,取消注释 cron.* /var/log/cron.log,然后 sudo systemctl restart rsyslog
- 查看日志:less /var/log/cron.log 或 tail -f /var/log/cron.log
二 使用 systemd 定时器
- 适用场景:需要精确到秒、依赖 systemd 特性(如日志、依赖、开机触发)或更复杂的调度。
- 步骤
- 创建服务单元:/etc/systemd/system/backup.service
- [Unit] Description=Backup Service
- [Service] ExecStart=/home/user/backup.sh
- 创建定时器单元:/etc/systemd/system/backup.timer
- [Unit] Description=Run backup daily at 08:00
- [Timer] OnCalendar=--* 08:00:00;Persistent=true
- [Install] WantedBy=timers.target
- 启用与启动:sudo systemctl daemon-reload;sudo systemctl enable --now backup.timer
- 查看与验证:
- 列表:systemctl list-timers --all
- 状态:systemctl status backup.timer
- 日志:journalctl -u backup.service
- 创建服务单元:/etc/systemd/system/backup.service
- 其他常用 OnCalendar 示例
- 每 5 分钟:OnCalendar=*:0/5
- 每小时整点:OnCalendar=--* 00:00:00
- 开机后 1 分钟运行,之后每 1 小时:OnBootSec=1min;OnUnitActiveSec=1h
三 一次性任务与快速测试
- 一次性任务(at)
- 安装:sudo apt-get install -y at
- 使用:at 22:30 2025-12-01(回车后输入命令,Ctrl+D 结束)
- 快速测试 Cron
- 添加:* * * * * /usr/bin/date > > /tmp/cron_test.log 2> & 1
- 等待 1–2 分钟后查看:cat /tmp/cron_test.log
- 快速测试 systemd 定时器
- 参考上文 mytimer.timer 示例(每 5 分钟),用 journalctl -u mytimer.service 查看是否执行
四 常见问题与最佳实践
- 环境变量差异:cron 环境与登录环境不同,建议在脚本中使用绝对路径,并在 crontab 顶部显式设置 PATH 等变量
- 权限与所有权:确保脚本与日志目录对执行用户可读/可写/可执行
- 幂等与锁文件:避免重叠执行,可在脚本中加锁(如 flock)或设计幂等逻辑
- 时区问题:确认系统时区与业务时区一致(timedatectl status / set-timezone)
- 日志与告警:为关键任务记录标准输出与错误输出,必要时接入监控/告警
- 语法校验:crontab -e 会自动语法检查;systemd 使用 systemctl daemon-reload 后检查状态
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: ubuntu定时器配置步骤
本文地址: https://pptw.com/jishu/755022.html
