Crontabs ,一般用于Linux服务器中用于定时执行任务的工具。它通过编辑用户的 crontab 文件来定义一系列定时任务,每个任务由一行配置信息指定,包含执行时间(分钟、小时、日期、月份、星期等时间字段)和对应的命令或脚本路径。系统会根据这些配置,在指定的时间自动运行相应的任务,广泛应用于系统管理、数据备份、日志清理、定时提醒等各种自动化场景,帮助用户高效地管理和调度重复性工作 。
安装crontabs:
yum install vixie-cron
yum install crontabs
启动服务:
/sbin/service crond start
查看是否开机启动:
ntsysv
设置开机启动:
chkconfig --level 35 crond on
添加计划任务:
crontab -e
每一行代表一个定时任务,基本格式如下:
* * * * * command_to_execute
│ │ │ │ │
│ │ │ │ │
│ │ │ │ └── 星期几 (0 - 7) (0 或 7 表示星期天)
│ │ │ └───── 月份 (1 - 12)
│ │ └───────── 日期 (1 - 31)
│ └───────────── 小时 (0 - 23)
└───────────────── 分钟 (0 - 59)
常用 Crontab 设置示例
1. 每分钟执行一次命令
* * * * * /path/to/command
解释:每分钟的第0秒执行 /path/to/command。
2. 每小时的第30分钟执行一次命令
30 * * * * /path/to/command
解释:每小时的第30分钟执行 /path/to/command。例如,1:30、2:30、3:30等。
3. 每天凌晨2点执行一次命令
0 2 * * * /path/to/command
解释:每天凌晨2点整执行 /path/to/command。
4. 每周一的凌晨3点执行一次命令
0 3 * * 1 /path/to/command
解释:每周一的凌晨3点整执行 /path/to/command。注意,星期天可以用0或7表示。
5. 每月的1号和15号的凌晨4点执行一次命令
0 4 1,15 * * /path/to/command
解释:每月的1号和15号的凌晨4点整执行 /path/to/command。
6. 每5分钟执行一次命令
*/5 * * * * /path/to/command
解释:每小时的0、5、10、15、...、55分钟执行 /path/to/command。
7. 每工作日上午9点到下午5点,每小时的第15分钟执行一次命令
15 9-17 * * 1-5 /path/to/command
解释:每周一至周五(1-5),上午9点到下午5点之间,每小时的第15分钟执行 /path/to/command。例如,9:15、10:15、...、16:15。
8. 每月的最后一天执行一次命令
由于 crontab 不直接支持“每月最后一天”的语法,可以使用以下方法实现:
0 0 L * * [ "$(date +\%d -d tomorrow)" = "01" ] && /path/to/command
解释:这个命令检查明天的日期是否为当月的第一天,如果是,则表示今天是最后一天,执行 /path/to/command。不过,这种方法依赖于特定的 shell 解释,且在某些系统中可能不可靠。更稳妥的方法是使用脚本判断并在 crontab 中每天执行该脚本。
9. 每周六和周日的凌晨2点执行一次命令
0 2 * * 6,0 /path/to/command
解释:每周六(6)和周日(0)的凌晨2点整执行 /path/to/command。
10. 每小时的整点和半点各执行一次命令
0,30 * * * * /path/to/command
解释:每小时的第0分钟和第30分钟各执行一次 /path/to/command。
特殊字符说明
*(星号):表示所有可能的值。例如,在分钟字段中使用 * 表示每分钟。
,(逗号):用于分隔多个值。例如,1,15 在日期字段中表示第1天和第15天。
-(连字符):用于指定范围。例如,9-17 在小时字段中表示从9点到17点。
/(斜杠):用于指定间隔。例如,*/5 在分钟字段中表示每5分钟。
?(问号):在某些实现中用于日期或星期字段,表示不指定具体值(通常用于避免与另一个字段冲突)。
本文出处:老蒋部落 » Crontabs 定时执行命令的工具安装和常规设置命名 | 欢迎分享( 公众号:老蒋朋友圈 )