Zapewnia, że uruchamia się co 20 minut. Chciałbym uruchamiać zadanie co 20 minut, zaczynając od 5 po godzinie, czy jest to możliwe w przypadku Crona? Czy może być:
Dzięki Babilończykom, którzy zdecydowali, że nasz system czasu powinien być dokładnie podzielony przez 1,2,3,4,5 i 6.
arivero
3
jeśli jest podzielna przez 2 i 3, jest również podzielna przez 6
Ziofil
Odpowiedzi:
514
Aby uruchomić zadanie co 20 minut, zaczynając o 5 po godzinie, spróbuj wykonać następujące czynności:
5-59/20 * * * *
Wyjaśnienie
*W dziedzinie minut jest taki sam, jak 0-59/1w którym 0-59jest zakres i 1jest krok . Polecenie będzie uruchamiane od pierwszej minuty w zakresie (0), a następnie we wszystkich kolejnych minutach, które są odległe od pierwszego krok po kroku (1), aż do ostatniej (59).
Dlatego */20 * * * *będzie działał o 0 minutach, 20 minutach później i 40 minutach później - czyli tak samo jak co 20 minut. Jednak */25 * * * *będzie działać o 0 minutach, 25 minutach później i 50 minutach później - co nie jest takie samo jak co 25 minut. Dlatego zwykle pożądane jest użycie wartości kroku w polu minuty, która dzieli się równomiernie na 60.
Aby więc przesunąć czas rozpoczęcia, jawnie określ zakres i ustaw pierwszą wartość na wartość przesunięcia.
Przykłady
5-59/20 * * * * będzie działać po 5 minutach, 25 minutach później i 45 minutach później.
10-59/25 * * * * będzie działać po 10 minutach i po 35 minutach.
1-59/2 * * * * będzie działać co nieparzystą minutę.
to działa idealnie. Jak się tego dowiedziałeś? Czy możesz wskazać mi dokumenty? Dzięki.
AJP,
12
Szereg wyszukiwań Google doprowadziło mnie do odpowiedzi na błąd serwera . Miał błąd, który naprawdę mnie zdezorientował, zwłaszcza że inne wyniki sugerowały, że krok modułu minut powinien wynosić zero . W końcu znalazłem tę stronę podręcznika, która dała mi odpowiedź. W rezultacie mogłem skomentować odpowiedź na błąd serwera, która została już naprawiona. Nie pamiętam rzeczywistych wyszukiwanych haseł, których użyłem do znalezienia strony IBM.
toxalot
3
Dzięki i bardzo dobrej pracy @toxalot. Żałuję, że nie mogliśmy przyznać odznaki „Niestrudzony Śledczy”! : P
AJP
5
LOL. Musiałem uruchamiać zadanie co 10 minut (przesunięte o 5) i naprawdę nie chciałem używać listy rozdzielanej przecinkami, więc postanowiłem znaleźć odpowiedź.
Dzięki. Skończyło się na tym, mając nadzieję, że może być bardziej eleganckie rozwiązanie.
AJP
13
Czasami proste rozwiązanie jest lepsze, ponieważ jest łatwe do odczytania i zrozumienia. Lubię wiedzieć, że 5-59/20to możliwe, ale 5,25,45ma tę zaletę, że od razu bardzo jasne, co to robi.
thomasrutter
2
tylko jeśli twój krok jest wystarczająco duży
Tebe
3
To jest o wiele lepszy przykład. Zrozumienie momentu rozpoczęcia pracy wymaga 0 obciążenia poznawczego.
Nie widzę w tym nic złego - w rzeczywistości jest to bardzo podobne do tego, jak zadanie cron certbota osiąga losowe przesunięcie, które pomaga utrzymać równowagę obciążenia serwera. na pewno nie zasługuje na te wszystkie negatywne opinie
billynoah
6
To sprawiło, że zastanawiałem się, jak spać losową liczbę sekund. sleep `shuf -i 1-100 -n 1`Zrób sztuczkę.
Laizer
cholera, @Laizer, kazałeś mi się czegoś nauczyć! (dziękuję!)
Odpowiedzi:
Aby uruchomić zadanie co 20 minut, zaczynając o 5 po godzinie, spróbuj wykonać następujące czynności:
Wyjaśnienie
*
W dziedzinie minut jest taki sam, jak0-59/1
w którym0-59
jest zakres i1
jest krok . Polecenie będzie uruchamiane od pierwszej minuty w zakresie (0), a następnie we wszystkich kolejnych minutach, które są odległe od pierwszego krok po kroku (1), aż do ostatniej (59).Dlatego
*/20 * * * *
będzie działał o 0 minutach, 20 minutach później i 40 minutach później - czyli tak samo jak co 20 minut. Jednak*/25 * * * *
będzie działać o 0 minutach, 25 minutach później i 50 minutach później - co nie jest takie samo jak co 25 minut. Dlatego zwykle pożądane jest użycie wartości kroku w polu minuty, która dzieli się równomiernie na 60.Aby więc przesunąć czas rozpoczęcia, jawnie określ zakres i ustaw pierwszą wartość na wartość przesunięcia.
Przykłady
5-59/20 * * * *
będzie działać po 5 minutach, 25 minutach później i 45 minutach później.10-59/25 * * * *
będzie działać po 10 minutach i po 35 minutach.1-59/2 * * * *
będzie działać co nieparzystą minutę.źródło
Pewnie!
źródło
5-59/20
to możliwe, ale5,25,45
ma tę zaletę, że od razu bardzo jasne, co to robi.Możesz spróbować:
*/5 * * * * sleep N; your job
źródło
sleep `shuf -i 1-100 -n 1`
Zrób sztuczkę.