Najczęstszy powód, dla którego widziałem niepowodzenie crona w niepoprawnie określonym harmonogramie. Praktyka wymaga określenia zadania zaplanowanego na 23:15 15 23 * * *
zamiast * * 11 15 *
lub 11 15 * * *
. Dzień tygodnia dla prac po północy też się myli MF jest 2-6
po północy, nie 1-5
. Określone daty są zwykle problemem, ponieważ rzadko ich używamy, nie * * 3 1 *
jest 3 marca. Jeśli nie jesteś pewien, sprawdź harmonogramy cron online pod adresem https://crontab.guru/ .
Jeśli praca z różnymi platformami przy użyciu nieobsługiwanych opcji, takich jak 2/3
specyfikacje czasowe, może również powodować awarie. Jest to bardzo przydatna opcja, ale nie jest powszechnie dostępna. Mam również problemy z listami takimi jak 1-5
lub 1,3,5
.
Korzystanie z niekwalifikowanych ścieżek również spowodowało problemy. Domyślna ścieżka to zwykle, /bin:/usr/bin
więc uruchamiane będą tylko standardowe polecenia. Te katalogi zwykle nie mają żądanego polecenia. Wpływa to również na skrypty używające niestandardowych poleceń. Mogą również brakować innych zmiennych środowiskowych.
Całkowite przeszukanie istniejącego crontabu sprawiło mi problemy. Teraz ładuję z kopii pliku. Można to odzyskać z istniejącego pliku crontab za pomocącrontab -l
jeśli zostanie zablokowany. Trzymam kopię crontab w ~ / bin. Jest komentowany i kończy się linią # EOF
. To jest przeładowywane codziennie z pozycji crontab, takiej jak:
#! / usr / bin / crontab
# Załaduj ponownie ten crontab
#
54 12 * * * $ {HOME} / bin / crontab
Powyższe polecenie przeładowania opiera się na wykonywalnym pliku crontab z ścieżką hukową uruchomioną w pliku crontab. Niektóre systemy wymagają uruchomienia polecenia crontab w poleceniu i podania pliku. Jeśli katalog jest udostępniany w sieci, często używam go crontab.$(hostname)
jako nazwy pliku. To ostatecznie usunie przypadki, w których niewłaściwy plik crontab zostanie załadowany na niewłaściwy serwer.
Użycie pliku zapewnia kopię zapasową pliku crontab i pozwala na tymczasowe modyfikacje (tylko raz używam crontab -e
automatyczne wycofanie ). Dostępne są nagłówki, które pomagają w prawidłowym ustawieniu parametrów planowania. Dodałem je, gdy niedoświadczeni użytkownicy będą edytować plik crontab.
Rzadko natrafiłem na polecenia wymagające danych wejściowych użytkownika. Te zawodzą pod crontabem, chociaż niektóre będą działać z przekierowaniem danych wejściowych.
crontab -e
aby cron zaczął działać. Na przykład za pomocą vima edytuję plik i używam go:w
do napisania, ale zadanie nie jest dodawane do crona, dopóki też nie wyjdę. Więc nie zobaczę pracy, dopóki ja:q
też nie.