我想在我的笔记本电脑上运行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次通过并且您没有运行该作业,请在我启动后立即运行。
我即将做一些丑陋的事情,例如将cron
和anacron
与自定义脚本混合或使用时间戳编写我自己的bash脚本,可能会在此过程中重新发明方形轮。
关于最佳行动方案的任何想法?
干杯。
答案 0 :(得分:4)
每天运行命令,让脚本记录上次执行备份的日期
启动时,获取当月的当天。如果是月份的第22天,请正常运行并保存日期。如果它>> 22,并且最后一次运行是在同一个月,则退出。如果它是< 22,并且最后一次运行是上个月(不要忘记考虑从12到1的包装),退出。
日期应保存在某处的文件中。