Bacula 有替代的每周计划吗?

Bacula 有替代的每周计划吗?

如何安排Job1-Job5运行,如下所示?

Sun   Mon   Tue   Wed   Thu
---------------------------
Job1  Job2

Sun   Mon   Tue   Wed   Thu
---------------------------
            Job3  Job4  Job5

Sun   Mon   Tue   Wed   Thu
---------------------------
Job1  Job2

Sun   Mon   Tue   Wed   Thu
---------------------------
            Job3  Job4  Job5
..........

答案1

这样的计划无法用 Bacula 的 Schedule 资源语法来表达。

你可以通过调度来近似计算

  • 第一个星期日和第三个星期日的工作1
  • 第 1 个星期一和第 3 个星期一的工作 2
  • 第二个星期二和第四个星期二的工作3
  • 第二个星期三和第四个星期三的 Job4
  • 第二个星期四和第四个星期四的工作5

这将导致您所需的计划应用于每个月的第 1 天至 28 天,同时跳过剩余的天数(最坏的情况是第 29 天至 31 天)而不运行任何操作。

如果这还不够好,您可以使用 Run Before Job 来修改计划,因为如果 Run Before Job 返回错误,则作业本身不会运行。要实现这一点:

  • 在各自的工作日安排工作,不受周数限制
  • 创建两个 shell 脚本“even-week”和“odd-week”,分别在一周内返回成功和失败,在下一周返回相反的结果,依此类推
  • 向 Job1 和 Job2 添加指令“Run Before Job = odd-week”,向 Job3、Job4 和 Job5 添加指令“Run Before Job = even-week”

因此,例如,Job1 将被安排在每个星期日,但只有在奇数周返回成功时才真正运行,即仅在第 1、3、5 周等等。

编写实际脚本留给读者作为练习。:-)

相关内容