如何让Jenkins作业中Shell脚本的指定命令每年仅执行一次?
实现Jenkins Shell脚本中命令每年仅执行一次的方案
完全可以实现这个需求,你可以通过Shell的date命令获取当前日期的月日信息,再做条件判断来触发年度执行的命令。以下是几种实用的写法:
方法一:判断MMDD格式的日期
通过date +%m%d输出两位月份+两位日期的字符串,判断是否为1101(11月1日):
if [ "$(date +%m%d)" = "1101" ]; then # 这里写入你需要每年执行一次的命令 echo "执行年度指定任务..." fi
方法二:判断月份缩写+日期的格式
用date +%b %d输出英文月份缩写+两位日期,判断是否为Nov 01:
if [ "$(date +%b %d)" = "Nov 01" ]; then # 执行年度命令 fi
注意事项
- 时区问题:如果Jenkins服务器时区和你的预期不一致,可在
date命令前指定时区,比如国内时区:if [ "$(TZ='Asia/Shanghai' date +%m%d)" = "1101" ]; then # 执行命令 fi - 作业触发频率:确保你的Jenkins作业至少每天运行一次,否则可能错过11月1日的执行时机。
内容的提问来源于stack exchange,提问作者user1508682
相关产品推荐
相关产品推荐

