Jak sprawić, aby cron był uruchamiany co drugą niedzielę w inną niedzielę?


10

Mam zadanie crona, które działa na 0 0 * * 0/2 - tj. Co drugą niedzielę. Na przykład właśnie teraz działało. Chcę jednak, aby działało w inne niedziele - w następną niedzielę, a nie w tę. Innymi słowy: zakładam, że działa w niedzielne parzyste niedziele roku, ale chcę, aby działało w niedzielne parzyste niedziele.

W „man 5 crontab” nie widzę nic, co pomogłoby mi w tym, więc zakładam, że muszę wrócić do pracy z cronjobem na 0 0 * * 0, a następnie zrobić coś w poleceniu, które uruchamiam, aby sprawdzić, która niedziela to jest. Czy ktoś może mi pomóc z jakąś odpowiednią sztuczką z linii poleceń?

ETA: zdałem sobie sprawę, że moje 0/2 wcale nie robi tego, co pierwotnie myślałem (co drugą niedzielę). Biegnie w każdą niedzielę, o ile ten dzień tygodnia jest podzielny przez dwa, co oczywiście jest. Nie. Tak czy inaczej, podstawowe wymaganie pozostaje: uruchomić polecenie w niedzielę o nieparzystych numerach.


„nieparzyste” jak w „Pierwszej, trzeciej i piątej niedzieli”?
voretaq7

1
Nie, jak w 1., 3., 5., 7., ... 49., 51. tygodniu roku. Innymi słowy, co dwa tygodnie w niedziele przypadające na nieparzyste tygodnie w roku.
Skud

Przepraszamy - cron tego nie zrobi. Musisz sprawdzić, czy skrypt jest odpowiedni dla Ciebie. (Również, jeśli pamiętasz mnie z fal Certain Place - HI !!! )
Jenny D

Odpowiedzi:


3

Nie będę udawał, że sam podejmowałem się tego konkretnego zadania, ale to pytanie dotyczące przepełnienia stosu zawiera kilka odpowiedzi, które pokazują potencjalną sztuczkę z linii poleceń: /programming/350047/how-to-instruct-cron-to- wykonać zadanie co drugi tydzień


Żaden z nich nie sprawia, że ​​cron działa w nieparzystych tygodniach. Wszyscy po prostu robią się nawzajem. Niektóre w niezwykle egzotyczny i „kreatywny” sposób, których nie poleciłbym.
Chris S

Najwyżej głosowana odpowiedź wydaje się uruchamiać co tydzień, a następnie polegać na sztuczkach z linii poleceń, aby ustalić, czy jest to odpowiedni tydzień.
nmjk

1
Tak, ale jest to moduł 2, co oznacza, że ​​będzie działał w parzystych tygodniach. Może być możliwe układanie wielu evalbloków w celu dodania jednego, a następnie wykonanie modułu 2. To brzydkie co najwyżej, ale przypuszczam, że może działać.
Chris S

1
Z połączonej odpowiedzi wygląda na to, że ma potencjał: date +\%W\% 2> / dev / null || cokolwiek ... Jednak aby uzyskać nieparzyste tygodnie, chciałbym zrobić „&& cokolwiek” zamiast ||
Skud

1
Prośba o wyjaśnienie. Czy chcesz określać „każdy nieparzysty tydzień”, licząc według tygodnia, czy licząc według tygodnia? Jestem pewien, że to drugie jest możliwe, ale musiałbym znaleźć stare fragmenty, których użyłem w przeszłości.
nmjk
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.