在特定的一天每个月运行一次工作(用anacron?)

时间:2012-09-21 17:53:31

标签: linux automation cron

我想在我的笔记本电脑上运行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脚本,可能会在此过程中重新发明方形轮。

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

干杯。

1 个答案:

答案 0 :(得分:4)

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

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

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