你好,我是风一样的树懒,一个工作十多年的后端开发,曾就职京东、阿里等多家互联网头部企业。
开工大吉!马上就是金三银四了,各位小伙伴们,你们换工作开始准备了么?我们又要开始学习啦!
Cron是不是第一眼看到就觉得是用在xxl-job中的配置,但是除了xxl-job还能不能做其他的用处呢。比如不需要那么重,就简单做一个定时器,如每天晚上2点需要执行一次某个java文件。可做成
0 0 2 * * java HelloWorld
# 或者
0 0 2 * * java -jar HelloWorld.jar
即可完成,是不是就不需要额外依赖xxl-job等呢。如果不是java是其他语言,这个Cron将更加方便,下面我们来学习一下Cron吧。
Cron 是一种基于时间的任务调度工具,广泛用于类 Unix 系统(如 Linux 和 macOS)中,允许用户按照预定的时间或间隔自动执行某些命令或脚本。它是通过配置文件 crontab 来管理定时任务的,支持非常灵活的调度方式,通常用于系统维护、备份、日志清理、定时发送邮件等任务。
Cron 运行在系统后台(作为守护进程),它不断监视系统的时间,并与系统的当前时间进行比较。一旦匹配到预定的时间规则,就会执行相应的命令或脚本。
crontab 文件是一个文本文件,包含了一系列定时任务的调度规则。每一行代表一个单独的任务,其格式如下:
* * * * * /path/to/command
- - - - -
| | | | |
| | | | +---- Day of the week (0 - 6) (Sunday=0)
| | | +------ Month (1 - 12)
| | +-------- Day of the month (1 - 31)
| +---------- Hour (0 - 23)
+------------ Minute (0 - 59)
分钟(0-59):任务执行的分钟数。
小时(0-23):任务执行的小时数。
日期(1-31):任务执行的日期。
月份(1-12):任务执行的月份。
星期几(0-6):任务执行的星期几,0 表示星期日,1 表示星期一,依此类推。
每天凌晨 3 点执行命令:
0 3 * * * /path/to/script.sh
每天凌晨 3 点钟执行 /path/to/script.sh。
每小时的第 15 分钟执行命令:
15 * * * * /path/to/script.sh
每小时的第 15 分钟执行 /path/to/script.sh。
每周一的凌晨 1 点执行命令:
0 1 * * 1 /path/to/script.sh
每周一凌晨 1 点执行 /path/to/script.sh。
每月的 1 号和 15 号的中午 12 点执行命令:
0 12 1,15 * * /path/to/script.sh
每月的 1 号和 15 号中午 12 点执行 /path/to/script.sh。
每 5 分钟执行一次命令:
*/5 * * * * /path/to/script.sh
每 5 分钟执行一次 /path/to/script.sh。
编辑 Cron 表:使用 crontab -e 命令来编辑当前用户的 cron 表。编辑后,系统会自动保存任务设置并生效。
查看 Cron 表:使用 crontab -l 查看当前用户的所有定时任务。
删除 Cron 表:使用 crontab -r 删除当前用户的所有定时任务。
设置 Cron 表的文件:你也可以将一个已编辑好的 cron 表文件通过 crontab filename 命令导入。
定时备份:定时备份数据库或文件系统。
定时清理日志:定期清理老旧日志文件,防止磁盘空间被耗尽。
自动化任务:定时发送邮件通知,自动化的爬虫任务等。
定期检查系统状态:定时检查服务器的健康状态,执行负载检查等。
Cron 是一个非常强大的定时任务调度工具,它通过简单的配置文件就能灵活地管理各种定时任务,广泛应用于系统管理、自动化运维、数据处理等场景。
今天的内容就分享到这儿,喜欢的朋友可以关注,点赞。有什么不足的地方欢迎留言指出,您的关注是我前进的动力!