crontab 是 Linux 下的定时任务(计划任务)工具,用于在指定时间自动执行命令或脚本。
基本语法
分 时 日 月 周 命令 0 3 * * * /usr/bin/backup.sh # 每天凌晨 3 点执行备份
时间字段说明
| 字段 | 范围 |
|---|---|
| 分 | 0-59 |
| 时 | 0-23 |
| 日 | 1-31 |
| 月 | 1-12 |
| 周 | 0-7(0 和 7 都表示周日) |
常用示例
# 每小时执行 0 * * * * /usr/bin/check.sh # 每 30 分钟 */30 * * * * /usr/bin/script.sh # 每天 9:00 和 18:00 0 9,18 * * * /usr/bin/daily.sh # 每周一 5:00 重启服务 0 5 * * 1 systemctl restart nginx # 每月 1 号凌晨 2 点清理日志 0 2 1 * * /usr/bin/clean_logs.sh
管理 crontab
crontab -e # 编辑当前用户的任务 crontab -l # 查看当前用户的任务 crontab -r # 删除所有任务
注意事项
- 脚本中使用绝对路径
- 输出可重定向到日志文件:
0 3 * * * /backup.sh >> /var/log/backup.log 2>&1 - 环境变量有限,可在脚本中重新设置