0

How to schedule Job1-Job5 to be run as shown below?

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
..........
geek
  • 103
  • 4

1 Answers1

0

Such a schedule cannot be expressed in Bacula's Schedule resource syntax.

You can approximate it by scheduling

  • Job1 on 1st Sun and 3rd Sun
  • Job2 on 1st Mon and 3rd Mon
  • Job3 on 2nd Tue and 4th Tue
  • Job4 on 2nd Wed and 4th Wed
  • Job5 on 2nd Thu and 4th Thu

This would cause your desired schedule to be applied to day 1-28 of each month, while skipping the remaining days (29-31, at worst) without running anything.

If that is not good enough, you can use schedule modification by a Run Before Job, using the fact that if a Run Before Job returns an error then the job itself isn't run. To implement this:

  • schedule the jobs on their respective weekdays without week restriction
  • create two shell scripts "even-week" and "odd-week" that return success and failure, respectively, during one week, the other way around during the following week, and so on
  • add the directive "Run Before Job = odd-week" to Job1 and Job2, and the directive "Run Before Job = even-week" to Job3, Job4 and Job5

Thus, for example Job1 will be scheduled every Sunday but only actually run if odd-week returns success, ie. only in week 1, 3, 5, and so on.

Writing the actual scripts is left as an exercise to the reader. :-)

Tilman Schmidt
  • 4,101
  • 12
  • 27