目录
一.cron介绍
1.什么是Cron?
2.Cron语法
时间字段的取值范围如下:
时间字段支持以下特殊字符:
下面是一些示例:
3.虚拟机安装cron(centos7展示)
二.常见的cron表达式
一.cron介绍
1.什么是Cron?
- Cron是一个Unix和类Unix操作系统的时间基准软件。它允许用户在预定时间执行命令或脚本,这些任务可以是单次性的,也可以是按照设定的时间表重复执行的。Cron通常被用于周期性地备份文件、定期运行系统维护任务、发送邮件通知等。
- Cron依赖于一个称为"crontab"的配置文件来管理任务列表。通过编辑crontab文件,用户可以设置要执行的命令、执行命令的时间表以及其他相关信息。Crontab文件中的每一行代表一个要执行的任务,其中包括了任务的执行时间(分钟、小时、日期等)和要执行的命令。
- 在Linux系统中,可以使用
crontab -e
命令来编辑当前用户的cron任务列表,或者使用/etc/crontab
文件来设置系统范围内的任务。通过合理配置cron任务,用户可以自动化许多重复性的工作,提高系统的效率和可靠性。
2.Cron语法
字段 | 允许值 | 允许的特殊字符 |
---|---|---|
秒 (Seconds) | 0-59 | , - * / |
分 (Minutes) | 0-59 | , - * / |
小时 (Hours) | 0-23 | , - * / |
日 (Day of month) | 1-31 | , - * ? / L W C |
月 (Month) | 1-12 or JAN-DEC | , - * / |
周几 (Day of week) | 0-7 or SUN-SAT | , - * ? / L C # |
ron语法由五个时间字段和一个命令字段组成,每个字段之间用空格或制表符分隔。以下是cron语法的详细说明:
时间字段的取值范围如下:
- 分钟(0-59)
- 小时(0-23)
- 日期(1-31)
- 月份(1-12)
- 星期(0-7,其中0和7都代表星期日)
时间字段支持以下特殊字符:
*
:匹配所有可能的值。,
:用逗号分隔多个值。-
:表示一个范围。例如,1-5
表示1到5。/
:用于指定间隔值。例如,*/5
表示每隔5个单位。
下面是一些示例:
* * * * * command
:每分钟执行一次命令。0 2 * * * command
:在每天凌晨2点执行命令。0 8-18/2 * * * command
:在每天上午8点至下午6点之间,每隔两个小时执行一次命令。
请注意,cron表达式的时间是基于服务器的本地时间。确保您设置的时间与预期的执行时间相匹配,并考虑时区差异
3.虚拟机安装cron(centos7展示)
-
yum install cronie
注意:在较新的 CentOS 版本上(如 CentOS 8),cron 被替换为 cronie,因此需要安装 cronie。
-
安装完成后,使用以下命令启动 cron 服务并设置为开机自启:
systemctl start crond systemctl enable crond
-
确认 cron 服务已经成功启动,可以使用以下命令检查服务状态:
systemctl status crond
如果显示 "active (running)",则表示 cron 服务已经成功启动。
二.常见的cron表达式
Cron 表达式 | 含义 |
---|---|
0 0 12 * * ? | 每天中午 12 点执行 |
0 15 10 ? * * | 每天上午 10:15 执行 |
0 0/5 14 * * ? | 每天下午 2 点开始,每隔 5 分钟执行一次 |
0 0/2 8-18 * * ? | 每天上午 8 点到下午 6 点之间,每隔 2 分钟执行一次 |
0 0 6,18 * * ? | 每天早上 6 点和晚上 6 点执行 |
0 0/3 * * * ? | 每小时的第 0 分钟开始,每隔 3 分钟执行一次 |
0 0 9-17 * * MON-FRI | 周一到周五的上午 9 点到下午 5 点之间,每天执行一次 |
0 0 12 1 */2 ? | 每两个月的第 1 天中午 12 点执行 |
0 0 10 ? * 6L | 每月最后一个周六的上午 10 点执行 |
@reboot | 系统启动时执行任务 |