Czy cron dostarczany z OS X rejestruje swoje działania gdziekolwiek?
Nie szukam danych wyjściowych żadnego konkretnego zadania cron, ale raczej rejestruję, co robi cron. Na kilku maszynach z linuksem, które sprawdziłem, jest tam /var/log/cron
taka zawartość, jak:
Apr 26 11:00:01 localhost crond[27755]: (root) CMD (/root/bin/mysql-backup)
Apr 26 11:01:01 localhost crond[27892]: (root) CMD (run-parts /etc/cron.hourly)
Apr 26 11:07:01 localhost crond[28138]: (root) CMD (/usr/local/bin/python /home/
user1/scripts/pythonscript.py)
Apr 26 11:18:18 localhost crontab[28921]: (user2) LIST (user2)
Apr 26 11:18:22 localhost crontab[28929]: (user2) BEGIN EDIT (user2)
Apr 26 11:18:59 localhost crontab[28929]: (user2) REPLACE (user2)
Pokazuje to, kiedy uruchomiono zadania, kiedy użytkownicy przeglądali lub edytowali crontabs, itp. Tych rzeczy nigdzie nie znalazłem na mojej maszynie Snow Leopard.
macos
osx-snow-leopard
cron
Doug Harris
źródło
źródło
Wymyśliłem, jak rejestrować moją aktywność zadania cron bez przełączania każdego z nich na zadania uruchomione.
Strona man cron wspomina o
-x
opcjach, które umożliwiają „zapisywanie informacji debugujących na standardowe wyjście”. Efektem ubocznym jest to, że zapisują one również podstawowe informacje do standardowego błędu. Dane wysyłane do standardowego błędu są zapisywane na/var/log/system.log
.Powoduje to, że dane takie jak te są zapisywane w
/var/log/system.log
:Ponieważ sam cron jest uruchamiany przez launchd, aby to włączyć, musiałem edytować,
/System/Library/LaunchDaemons/com.vix.cron.plist
aby teraz wyglądał następująco:Użyłem
-x misc
tutaj, ale nie miało znaczenia, jakich opcji użyłem. Dodanie-x
rozpoczętego rejestrowania aktywności zadania. Dodałem również StandardErrorPath do zapisu/var/log/cron.log
zamiast domyślnego/var/log/system.log
.A następnie rozładuj i załaduj ponownie:
źródło
OSX ma teraz tendencję do używania uruchomionego zamiast cron - Apple dev doc - więc może być tak, że w cron nie ma nic do zarejestrowania.
Użyj launchctl, aby kontrolować poziom rejestrowania uruchomionego. Informacje o dzienniku Som pojawiają się w pliku system.log, ale więcej w aplikacji konsoli -> Wszystkie wiadomości
źródło
0 0 7 11 0 happybirthday
.Przynajmniej w Yosemite, cron loguje dane wyjściowe jako
mail
wiadomości, więc użyj ich,mail
aby je odczytać.źródło
cron
wysyła dane wyjściowe (w przeciwnym razie bez przekierowania) do właściciela zadania pocztą. Jeśli wszystkie dane wyjściowe zostaną przekierowane, poczta nie zostanie wysłana. (Nawet jeśli wiadomość zostanie wysłana, nie jestem pewien, czy pokazuje ona polecenie, które zostało wykonane.) Pytanie dotyczy tego, jak administrator może zobaczyć wszystkie wykonane poleceniacron
. Aby skorzystać z Twojej odpowiedzi, osoba musiałaby przejrzeć plik poczty wszystkich osób.