【问题标题】:Run job every month on a specific day (with anacron?)每个月在特定的一天运行工作(使用 anacron?)
【发布时间】:2012-09-22 02:34:07
【问题描述】:

我想在运行 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 脚本,使用时间戳,可能在此过程中重新发明方轮。

对最佳行动方案有任何想法吗?

干杯。

【问题讨论】:

    标签: linux automation cron


    【解决方案1】:

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

    当它启动时,获取当前月份的日期。如果是当月 22 日,则正常运行并保存日期。如果大于 22,并且最后一次运行是在同一个月,则退出。如果它是

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

    【讨论】:

    • 嗨,巴尔玛。我猜有一个每 5 或 10 分钟运行一次的 cron 作业来检查这些条件,并实施你的规则,我应该没问题。我仍然希望使用可用的工具找到答案,但这确实很容易用 Python 编程,模仿 anacron 的格式并允许多个作业。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-22
    • 1970-01-01
    • 2019-04-01
    • 1970-01-01
    • 2021-05-04
    • 1970-01-01
    相关资源
    最近更新 更多