Wpis z mikrobloga

#linux #python

Na wstępie dla wszystkich Linuxiarzy, tak jestem Lamą, Windziarzem, Noobem i w ogóle podczłowiekiem - więc darujcie sobie.

Mam skrypt pythona który printuje mi efekty swojej pracy w czasie działania. Dodałem ten skrypt do crona i robi swoją robotę - widzę efekt końcowy. Pytanie, gdzie mogę podejrzeć jego działanie gdy się wykonuje (tzn. gdzie mogę zobaczyć informacje które normalnie widzę w terminalu gdy wywołam skrypt ręcznie w przypadku gdy wywołany jest przez crona)?
  • 11
@grejzen: Domyślnie chyba nigdzie, musiałbyś sam zrobić przekierowanie wyjścia skryptu do jakiegoś pliku albo skorzystać z sysloga.

Druga opcja to zrobienie sobie service unit dla systemd i skorzystanie z systemd timer zamiast z crona a potem podglądanie logów przez journalctl. To jest bardzo proste, dowolny poradnik i chwila wolnego czasu ci wystarczy by ogarnąć.
@grejzen: A jednak z manuala:

Program cron budzi się co minutę, sprawdzając wszystkie pliki crontab i sprawdzając, czy poszczególne polecenia nie muszą być wykonane w bieżącej minucie. Po wykonaniu poleceń, ich ewentualne wyjście jest wysyłane pocztą do właściciela pliku crontab (lub do użytkownika ze zmiennej środowiskowej MAILTO z pliku crontab, jeśli taka istnieje). Kopie potomne crona, które wykonują te procesy, mają ich nazwy zapisane wielkimi literami, jak to widać w wyniku
gdzie mogę zobaczyć informacje które normalnie widzę w terminalu gdy wywołam skrypt ręcznie w przypadku gdy wywołany jest przez crona)?

to ci przekieruje błędy z interpretera
@grejzen: 0 14 * * * /home/script >> /home/log/myscript.log 2>&1

a błędy programu najlepiej ogarnąć sobie w pythonie loggując je do plików
@grejzen: w zależności od dystrybucji i ustawień daemona crond i syslogd

Szukałbym w

/var/log/cron

/var/log/syslog


lub w dystrybucjach z systemd

journalctl _COMM=cron