一、介绍
crontab是一个Linux系统中用于定时执行任务的工具。它允许用户在预定的时间间隔内运行命令或脚本。下面是一个简单的crontab使用教程:
显示当前用户的crontab列表
crontab -l
编辑当前用户的crontab
crontab -e
crontab文件格式
* * * * * 执行的命令
- - - - -
| | | | |
| | | | +----- 星期几 (0 - 6) (星期天可以是 0 或 7)
| | | +------- 月份 (1 - 12)
| | +--------- 日 (1 - 31)
| +----------- 小时 (0 - 23)
+------------- 分钟 (0 - 59)
分钟(0-59)
单个数字:5 表示第5分钟执行任务。
逗号分隔的数字列表:5,15,25 表示第5、15、25分钟执行任务
连续的数字范围:1-10 表示第1至第10分钟执行任务
星号(*):表示每分钟都执行任务
正斜杠(/):*/5 表示每隔5分钟执行任务
小时(0-23)
单个数字:10 表示第10小时执行任务。
逗号分隔的数字列表:8,12,16 表示第8、12、16小时执行任务。
连续的数字范围:8-17 表示第8至第17小时执行任务
星号(*):表示每小时都执行任务。
正斜杠(/):*/2 表示每隔2小时执行任务
日期(1-31)
单个数字:15 表示每月的15号执行任务
逗号分隔的数字列表:1,15,31 表示每月的1、15、31号执行任务
连续的数字范围:1-7 表示每周的第1至第7天执行任务
星号(*):表示每天都执行任务。
正斜杠(/):*/5 */5 表示每隔5天执行任务
月份(1-12)
单个数字:6 表示每年的6月执行任务
逗号分隔的数字列表:1,6,12 表示每年的1、6、12月执行任务
连续的数字范围:1-4 表示每季度执行任务
星号(*):表示每个月都执行任务。
正斜杠(/):*/3 表示每隔3个月执行任务
星期(0-6,0表示星期天,7也表示星期天)
单个数字:0 表示每周日执行任务
逗号分隔的数字列表:0,3,6 表示每周日、周三、周六执行任务
连续的数字范围:1-5 表示每周的第1至第5天执行任务
星号(*):表示每天都执行任务。
正斜杠(/):*/2 */2 表示每隔2天执行任务
二、例子
每天凌晨2点备份文件:
0 2 * * * /root/backup.sh
每周日凌晨3点清理日志:
30 3 * * 0 /root/cleanup.sh
每天早上6点执行脚本:
0 6 * * * /path/to/script.sh
每个月的前七天早上9点执行脚本:
0 9 1-7 * * /path/to/script.sh
每小时执行脚本:
0 * * * * /path/to/script.sh
三、注意事项
crontab的时间是基于系统的时区设置的,因此需要确保时区正确。
crontab的命令需要使用绝对路径。
crontab的日志会输出到系统默认的日志文件中,可以通过grep命令查找。