主题
Crontab 快速入门指南
介绍
crontab是一个调度程序,用于安排定期运行的任务。- 每个用户都有自己的
crontab文件,用于存储他们的任务计划。 - 使用
cron服务来根据crontab文件中的规则定时执行任务。
Crontab 的基本语法
时间格式
crontab 的每一行定义了一项任务的执行时间及要运行的命令。其格式如下:
plaintext
* * * * * 命令
- - - - -
| | | | |
| | | | +---- 星期几 (0 - 7, 0 或 7 表示周日)
| | | +------ 月份 (1 - 12)
| | +-------- 日期 (1 - 31)
| +---------- 小时 (0 - 23)
+------------ 分钟 (0 - 59)示例
以下是一些常见的时间设置示例:
* * * * *:每分钟执行一次0 * * * *:每小时的第 0 分钟执行一次0 2 * * *:每天凌晨 2 点执行一次0 2 * * 1:每周一凌晨 2 点执行一次*/5 * * * *:每 5 分钟执行一次
常用命令
编辑 Crontab 文件
使用以下命令来编辑当前用户的 crontab 文件:
bash
crontab -e查看 Crontab 文件
查看当前用户的 crontab 文件内容:
bash
crontab -l删除 Crontab 文件
删除当前用户的所有定时任务:
bash
crontab -rCrontab 示例
假设我们有一个脚本 ~/workspace/update_tv.sh,希望每天晚上 2 点(中国时间)执行,时间换算为 UTC 为每天 18:00。以下为 crontab 的配置:
bash
0 18 * * * ~/workspace/update_tv.sh特殊符号
*:表示任意值。例如,*在“小时”字段表示每小时。,:用逗号分隔多个值。例如,0,15,30,45表示每小时的 0、15、30 和 45 分钟。-:表示范围。例如,1-5表示从 1 到 5。/:表示步长。例如,*/10表示每 10 分钟执行一次。@reboot:在系统启动后立即执行任务。
常见问题及解决
任务未运行?
- 确保
cron服务正在运行:bashsudo service cron status - 确保任务中的脚本有执行权限:bash
chmod +x /path/to/your/script.sh
- 确保
如何查看任务日志?
- 查看系统日志文件:bash
cat /var/log/syslog | grep cron
- 查看系统日志文件:
如何指定环境变量?
- 在
crontab文件顶部添加变量。例如:bashPATH=/usr/bin:/bin:/usr/sbin:/sbin
- 在
