前段时间介绍了如何运用 GitHub Actions 工作流脚本进行签到的视频节目。有网友便想自己设置 Github Actions 工作流脚本的计划任务运行时间。
那么我这里就简单介绍一下如何修改 Github Actions 工作流脚本的任务运行时间设置。
Github Actions 工作流脚本其实用的是cron脚本来运行时间规划。我们的软路由Openwrt或者Linux的计划任何后台的时间设置也是这么设置的。同理!
Github路径:
Github项目名称_Action/.github/Workflows/脚本文件.yaml
在代码中我们可以看到时间表:
schedule: - cron: 0 20 * * *
一句话理解,分别表示:
第几分钟0-59、每天几时0-23、每月第几天1-31、一年第几月1-12、每周第几天0-6。
cron 是 UNIX, SOLARIS,LINUX 下的一个十分有用的工具。通过 cron 脚本能使计划任务定期地在系统后台自动运行。
cron 命令
crontab -e – 编辑该用户的 crontab,当指定 crontab 不存在时新建。
crontab -l – 列出该用户的 crontab。
crontab -r – 删除该用户的 crontab。
crontab -u<用户名称> – 指定要设定 crontab 的用户名称。
cron 实例
1. 特定时间执行
cron 的基本用法是在特定的时间执行一项任务,如下是 6 月 10 上午 8:30 执行 Full backup shell script。 要注意的是时间字段采用的是 24 小时制,如果是下午 8 点,则改写为 20 点
30 08 10 06 * /home/ramesh/full-backup
30 – 第 30 分钟
08 – 早上 8 点
10 – 10 号
06 – 第 6 个月 (6 月)
* – 一周的任何一天
2. 安排多个实例(比如一天执行两次)
下面的增量备份脚本每天执行两次。
每天于 11:00, 16:00 执行,逗号两侧的时间都会执行。
00 11,16 * * * /home/ramesh/bin/incremental-backup
00 – 第 0 分钟 (每小时开时)
11,16 – 早上 11 点与下午 4 点
* – 每天
* – 每个月
* – 一周的任何一天
3. 让任务只在特定时间执行(比如仅当工作日时执行)
下面这个例子是每天 9:00-16:00 检查数据库状态(包括周六)
00 09-18 * * * /home/ramesh/bin/check-db-status
00 – 第 0 分钟 (每小时开时)
09-18 – 9 点, 10 点, 11 点, 12 点, 下午 1 点, 下午 2 点, 下午 3 点, 下午 4 点, 下午 5 点, 下午 6 点
* – 每天
* – 每个月
* – 一周的任何一天
如果只想工作日执行此操作
00 09-18 * * 1-5 /home/ramesh/bin/check-db-status
00 – 第 0 分钟 (每小时开时)
09-18 – 9 点, 10 点, 11 点, 12 点, 下午 1 点, 下午 2 点, 下午 3 点, 下午 4 点, 下午 5 点, 下午 6 点
* – 每天
* – 每个月
1-5 – 周一, 周二, 周三, 周四和周五 (工作日)