每月在特定日期运行作业(使用 anacron?)

Mor*_*ock 5 linux cron automation

我想在我运行 Ubuntu 12.04 的笔记本电脑上每月运行一次作业,假设是每月的 22 日。

由于它是一台笔记本电脑,而且我可能并不总是每个月的第 22 天都使用它,cron因此不是一个很好的选择。

看着anacron,似乎有一个限制。也就是说,您可以指定一个“句点”,但不能指定特定的星期几或一个月的哪一天,如anacrontab文件格式所建议的:

# cat /etc/anacrontab
period   delay   job-identifier   command
7       15      test.daily      /bin/sh /home/myself/backup.sh
Run Code Online (Sandbox Code Playgroud)

我想说的是,如果我们在这个月的第 22 天,当然笔记本电脑正在运行,请运行该作业。如果 22 号过去了,而您还没有运行该作业,请在我启动后立即运行它。

我即将做一些丑陋的事情,比如混合cronanacron使用自定义脚本或编写我自己的 bash 脚本,使用时间戳,可能在这个过程中重新发明方轮。

关于最佳行动方案的任何想法?

干杯。

Bar*_*mar 4

每天运行命令,并让脚本记录上次执行备份的日期

当它启动时,获取当月的当前日期。如果是该月的 22 号,则正常运行并保存日期。如果 >22,并且上次运行是在同一个月,则退出。如果它<22,并且最后一次运行是上个月(不要忘记考虑从 12 到 1 的换行),则退出。

日期应该保存在某个文件中。