/ / Jak korzystać z Crontab w Linuksie do wykonywania dwóch zadań w alternatywne dni? - linux, crontab

Jak używać Linux Crontab do wykonywania dwóch zadań w alternatywne dni? - linux, crontab

Chce to zrobić:

Wykonaj zadanie A dzisiaj o 6:00, a następnie co dwa dni później.

Wykonaj zadanie B jutro 6:00, a co dwa dni później.

Odpowiedzi:

0 dla odpowiedzi № 1

Normalne rozwiązanie dla posiadania cron wykonywanie pracy co dwa dni będzie używane */2 w polu dni, ale to nie obsługuje dni naprzemiennych.

Prawdopodobnie będziesz musiał sporządzić listę dni:

0 6 */2 * * #Job to execute every even numbered day
0 6 1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31 * * #Job to execute every odd numbered day

Zauważ, że to nie będzie idealne na miesiące, które kończą się nieparzystą liczbą dni, ponieważ to zakończy wykonywanie drugiej pracy dwa razy z rzędu, 31 i 1.

Prawdopodobnie warto na to patrzeć man crontab także w twoim systemie. Trochę crons obsługuje bardziej złożone formy planowania, takie jak zależności (poczekaj, aż to zadanie się zakończy, następnie odczekaj kolejne X godzin i uruchom inne zadanie), które mogą ci się przydać.


0 dla odpowiedzi nr 2

Możesz użyć date %s aby ustalić, czy jest to dzień "nieparzysty" czy "nawet" dzień w kalendarzu biegowym wolnym od granic ludzkich i lat. Na przykład:

$ [ $(( `date +%s` / 86400 % 2 )) -eq 0 ] && echo A || echo B

I poprowadź Zadanie A lub Zadanie B w ten sposób.