Próbuję rozwiązać problem, dlaczego czasami moje zadanie cron nie działa. Gdzie domyślnie Cron przechowuje pliki dziennika? Czy to jest / var / log / syslog?
Przejrzałem ten plik i jest pusty. Czy muszę coś skonfigurować?
Domyślnie dzienniki crona są zapisywane w / var / log / syslog. To zależy od konfiguracji rsyslogd. Możesz to zmienić:
Przejdź do konfiguracji rsyslog
cd /etc/rsyslog.d/
sudo nano 50-default.conf
Niepożądana linia:
# cron. * /var/log/cron.log
Zapisz plik i zrestartuj rsyslog
restart rsyslog usługi sudo
Uruchom ponownie demona crona, aby otrzymać wiadomości z nowego pliku
restart cron usługi sudo
Kiedy cron
nie działa, wyśle wiadomość do użytkownika root
. Jedyny problem to: nie masz oprogramowania do wysyłania / przechowywania poczty w skrzynkach pocztowych.
Ale nie bój się, Postfix
jest tutaj!
sudo apt-get update sudo apt-get install postfix heirloom-mailx
Podczas instalacji postfix
pojawi się pytanie, jak chcesz go skonfigurować. Na pierwszym ekranie wybierz local only
i przejdź do ustawień domyślnych dla wszystkich innych elementów.
Teraz, używając swojego ulubionego edytora, edytuj /etc/aliases
. Na początku będzie wyglądać mniej więcej tak:
# Zobacz format pseudonimów man 5 postmaster: root
Oznacza to, że każda wysłana poczta postnaster
zostanie teraz również wysłana root
. W takim przypadku chcemy, aby każda poczta wysłana na root
(dla wiadomości Cron i każdej innej poczty systemowej) została wysłana do username
(nas).
Tak, edytuj, /etc/aliases
aby wyglądać następująco:
# Zobacz format pseudonimów man 5 postmaster: root root: norman
( norman
Oczywiście zastąp swoją nazwą użytkownika. Chyba że masz taką samą nazwę / nazwę użytkownika jak ja. :))
Po tym wszystkim powiedziano i zrobiono, uruchom następujące polecenie do push
zmian:
nowości sudo
Teraz po tym uruchomieniu:
sudo dpkg-rekonfiguruj Postfiks
Otrzymasz ten sam ekran, który miałeś wcześniej podczas instalacji postfix
. Uruchom domyślne ( Local Only
itp.). Kiedy przejdziesz do części, w której prosi się o alias root i postmaster, po prostu upewnij się, że jest taki sam jak ten, który dodałeś /etc/aliases
powyżej. Następnie kontynuuj przeglądanie ustawień domyślnych.
Po zakończeniu uruchom następujące polecenie, aby uruchomić ponownie postfix
i rozpocząć!
restart postfix usługi sudo
Teraz, jeśli cron ma błąd, zostanie wysłany do ciebie. Ale zapewne zastanawiasz się, jak, u licha, sprawdzam swoją (lokalną) pocztę?
Aby to zrobić, uruchom polecenie:
Poczta
Tak prosty. Jeśli nie będzie żadnej poczty, to powie No mail for <username>
. W przeciwnym razie otrzymasz czysty interfejs terminala do użycia. Zobacz stronę podręcznika, aby uzyskać informacje na temat interakcji ze skrzynką odbiorczą.
Lub, jeśli wolisz, możesz uzyskać dostęp do lokalnej strony podręcznika użytkownika, używając:
poczta męska
A teraz gotowe! :)
PS Należy przeczytać to, aby dowiedzieć się więcej na temat cron
problemu.
crond
wysyła wiadomość e-mail do właściciela zadania, niekoniecznie użytkownika root, więc jeśli jest to Twoja własna praca, którą zainstalowałeścrontab -e
, otrzymasz wiadomość. Jest to również prawdą, niezależnie od tego, czy zadanie „nie powiedzie się” ... po prostu przesyła Ci e-mailem transkrypcję dowolnego wyniku, jaki miało zadanie.Podczas działania
mail
otrzymałem następującą odpowiedź:Zamiast tego znalazłem zapisane w nim błędy / wiadomości e-mail
/var/mail/root
źródło
Jest
/var/log/syslog
domyślnie włączony.Ale można go skonfigurować, aby utworzyć osobny plik cron.log, co jest bardziej przydatne.
Niniejsze pytania i odpowiedzi opisują proces:
16.04: Jak sprawić, aby cron utworzył cron.log i monitorował go w czasie rzeczywistym?
Również w tej odpowiedzi znajdują się instrukcje tworzenia
wcron
polecenia, które wyświetla je prawie w czasie rzeczywistym. Ponadto łączy się z inną odpowiedzią,Jak zmienić poziom dziennika cron?
pokazuje, jak zmienić poziom dziennika, aby obejmował coś więcej niż tylko rozpoczęcie zadań - poziom 15 pokaże również błędy i czas zakończenia.
źródło