运行 12 个月的 crontab 作业

Running a crontab job for 12 months

我正在尝试编写一个 crontab 作业,它将 运行 持续 12 个月并在该时间段后停止 运行ning。有点像每年更新的许可证。这可能吗? 我的思考过程是在 crontab -e 文件中使用 date 命令。 对此有任何想法将不胜感激,谢谢。

您可以构建一个从 crontab 调用的 shell 脚本。在那里你可以检查“今天”是否在给定日期之前你 运行 crontab 例如每天:

futuredate=$(date -d 2021-08-19 +%s)
today=$(date +%s)

if [ $futuredate -ge $today ];
then
  echo "put yout command here"
fi

然后您可以像往常一样运行 crontab。如果日期超过了你在 if 语句中的命令将不会被调用

(编辑)更有意义的变量名

准备许可证检查脚本。它的任务是验证您的每月脚本是否有效。如果每月脚本无效,则禁用每月脚本。

  1. 将您的每月脚本放入 /etc/cron.monthly

2.1 在特定时间使用at 命令在您的每月脚本上运行 'license-check'。曾经.

2.2每年使用crontab到运行'license-check'一次