6

我想每月在运行 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

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

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

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

干杯。

4

1 回答 1

4

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

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

日期应保存在某处的文件中。

于 2012-09-21T18:34:07.613 回答