Przeprowadziłem sporo badań, jak to zrobić, i widzę, że nie ma bezpośredniego sposobu, aby uruchomić cron, powiedzmy, co drugi czwartek.
W tej chwili skłaniam się ku stworzeniu skryptu, który będzie uruchamiany co tydzień i dotknie pliku „flag” po uruchomieniu, a jeśli uruchomi się, a plik już tam jest, aby go usunąć (i nie wykonać działania dwutygodniowe).
Moje pytanie brzmi: czy istnieje inny bardziej elegancki lub prostszy sposób na osiągnięcie tego celu, polegającego na tym, że skrypt bash działa automatycznie co drugi tydzień?
Dzięki!
Odpowiedzi:
Użyłem bash, aby wykonać matematykę, ponieważ jestem leniwy; zmień to na cokolwiek chcesz. Korzystam z tego, że 1 stycznia 1970 r. Jest czwartkiem; w pozostałe dni tygodnia musisz zastosować przesunięcie. Cron potrzebuje znaków procentu, które uciekły.
Szybkie sprawdzenie:
Uwaga: Wybrałem losowe czasy, aby pokazać, że to zadziała, jeśli będzie uruchamiane w dowolnym momencie w czwartek, i wybrałem daty, które przekraczają granice roku, a także obejmują miesiące z 4 i 5 czwartkami.
Wynik:
źródło
Jednym ze sposobów może być użycie
at
narzędzia, jeśli używasz Linuksa. Możesz umieścić to na końcu skryptu:gdzie X to czas, w którym chcesz uruchomić skrypt. Aby zainicjować, po prostu zadzwoń
at
po raz pierwszy, a następnie powyższa instrukcja będzie odnawiać zaplanowane połączenie.źródło
Jeśli możesz używać
anacron
w systemie, wszystko będzie znacznie prostsze. Aby go użyćanacron
, musisz go zainstalować, a także mieć dostęp do konta root. Nie działa na starszych systemach (tj. RHEL 5.x), starsze wersje ancron działają TYLKO podczas uruchamiania. Działa z nowszymi systemami (tj. RHEL 6.x).Za pomocą
anacron
można zaplanować zadania w bardziej elastyczny sposób, np. Uruchamiać zadanie X raz w tygodniu.anacron
Uruchamia również zadania, gdy komputer staje się dostępny, tzn. Nie musisz brać pod uwagę, kiedy system jest w górę lub w dół.Aby uruchomić skrypt co drugi tydzień, musisz dodać wiersz podobny do następującego w pliku / etc / anacrontab:
Szczegółowe informacje znajdują się na stronie podręcznika użytkownika.
źródło
anacron
jest zdecydowanie najczystszym rozwiązaniem IMO (chyba że ma pewne niepożądane konsekwencje dla niektórych osób).Nie jestem pewien, czy istnieje bardziej elegancki sposób definiowania co drugi tydzień, ale może się to przydać.
Spowoduje to uruchomienie skryptu o godzinie 6:00 w pierwszy i trzeci czwartek miesiąca.
źródło
1-7,15-21,29-31
, ale wtedyUruchamiam go co tydzień i sprawdzam, czy skrypt ma numer nieparzysty: jeśli tak, wyjdź.
Będzie to wymagało więcej przemyśleń od grudnia do stycznia.
Być może skrypt ustawił plik flagi „ostatnie pomyślne uruchomienie”. Po uruchomieniu skryptu sprawdź, czy plik flagi został ostatnio zmodyfikowany 14 dni temu.
źródło