Chcę sprawdzić, czy moje zadanie cron jest wykonywane io której godzinie. Wydaje mi się, że istnieje dziennik moich sudo crontab -e
zadań, ale gdzie?
Przeszukałem google i znalazłem rekomendacje do zajrzenia /var/log
(w których nie widzę nic z „cron” w nazwie) i do edycji pliku, /etc/syslog.conf
którego również nie mam.
/var/log/
katalogu. Sprawdź plik cron.log lub równoważny.grep -i CRON
wyszukiwać bez rozróżniania wielkości literMożesz utworzyć plik cron.log zawierający tylko wpisy CRON, które pojawiają się w syslog. Pamiętaj, że zadania CRON nadal będą się wyświetlać w syslog, jeśli postępujesz zgodnie z poniższymi wskazówkami.
Otwórz plik
Znajdź linię zaczynającą się od:
usuń komentarz z tej linii, zapisz plik i uruchom ponownie rsyslog:
Powinieneś teraz zobaczyć tutaj plik dziennika cron:
Aktywność Crona będzie teraz rejestrowana w tym pliku (oprócz syslog).
Zauważ, że w cron.log zobaczysz wpisy, kiedy cron uruchomił skrypty w /etc/cron.hourly, cron.daily itp. - np. Coś takiego:
Jednak nie zobaczysz więcej informacji o tym, jakie skrypty zostały uruchomione w /etc/cron.daily lub /etc/cron.hourly, chyba że skrypty te kierują dane wyjściowe do pliku cron.log (lub może do innego pliku dziennika).
Jeśli chcesz sprawdzić, czy plik crontab jest uruchomiony i nie musisz go wyszukiwać w pliku cron.log lub syslog, utwórz plik crontab, który przekierowuje dane wyjściowe do wybranego pliku dziennika - coś takiego:
Spowoduje to przekierowanie wszystkich standardowych danych wyjściowych i błędów, które mogą zostać wywołane przez skrypt uruchamiany do określonego pliku dziennika.
źródło
*.*;auth,authpriv.none -/var/log/syslog
na*.*;auth,authpriv.none,cron.none -/var/log/syslog
.2>&1
skrót?Czasami przydatne może być ciągłe monitorowanie, w takim przypadku:
źródło
-F
, który będzie śledził plik w trakcie zmian nazw, aby po przycięciu / przeniesieniu do, np./var/log/syslog.1.gz
Nadal śledziłeś bieżący/var/log/syslog
plik. Wedługtail xxxx -f --retry
Możesz również skierować dane wyjściowe poszczególnych cronjobs do ich własnych dzienników, aby uzyskać lepszą czytelność, wystarczy gdzieś dołączyć wynik daty.
źródło
Jeśli
systemd
zainstalowałeś w swoim systemie, możesz wyświetlić dziennik zadań cron za pomocąjournalctl
polecenia.Na przykład na moim Ubuntu 17.10:
źródło
To bardzo stare pytanie, ale żadna z tych odpowiedzi nie wydaje się zadowalająca.
Najpierw uruchamiaj zadanie crona co minutę, a następnie uruchamiaj crona jako nie-demon (tymczasowo, po prostu zabij każdy crond, który mógł już się uruchomić) przy logowaniu testowym:
crond -nx test
I zobacz dziennik wykonania programu przepływającego przez twój terminal.
źródło
No command 'crond' found, did you mean: Command 'cron' from package 'cron' (main)
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
Fedoar 29 i RHEL 7
Z
journalctl
instrukcji:źródło
Możesz przekierować wyjście crona do pliku tmp
Takich jak: 00 11 07 * * / bin / bash /home/ubuntu/command.sh> / tmp / output 2> & 1
Błąd i normalne wyjście, oba zostaną przekierowane do tego samego pliku
źródło
Jak wspomniano wcześniej, zadania cron są logowane do
/var/log/syslog
Możesz przesłać syslog do grep i odfiltrować dzienniki CRON, w ten sposób
Możesz przeszukiwać swoje dzienniki crontab, w ten sposób
Możesz przeszukiwać dzienniki historii crontab przechowywane w plikach gz, tak jak to
Zawsze dobrze jest mieć mechanizm rejestrowania, możesz szybko skonfigurować ELK dla swoich serwerów, możesz także eksperymentować z logz .
źródło