Wszyscy wiemy, że właściwym sposobem obsługi danych wyjściowych z zadań cron jest przekierowanie ich do pliku:
0 * * * * /bin/date >> /var/log/date.log 2>&1
Czasami jednak administratorzy są leniwi, zapominający lub ignoranccy i nie umieszczają tych przekierowań; w takim przypadku dane wyjściowe zadania są wysyłane do $ MAILTO lub właściciela lub użytkownika root. W niektórych zarządzanych przeze mnie skrzynkach poczta jest wyłączona, więc dane wyjściowe trafiają do czarnej dziury. Zastanawiam się, czy jest jakiś sposób, aby powiedzieć cronowi, aby wziął jakikolwiek wynik zadania i zamiast wysłać go pocztą, wrzuć go do pliku dziennika catch-all? Używam Ubuntu (8.04, ale migruję do 9.04). W tym losowym wyniku Google jest wskazówka takiego rozwiązania , ale myślę, że OP mógł się mylić co do wydajności crona w porównaniu z wydajnością zadań crona.
Jestem otwarty na rozwiązania, które wymagają trochę skryptowania lub hakowania, ale idealnie byłby to bit konfiguracji, który mógłbym gdzieś ustawić. Nie widzę żadnych wskazówek man cron
. Dzięki!
root: /var/log/cron.log
nie działa? feep.net/sendmail/tutorial/intro/aliases.htmlNie sądzę, że to, o co prosisz, jest w rzeczywistości możliwe z Ubronu (lub jakimkolwiek innym) cronem.
Oprócz pomysłu geekmonkeys, możesz także ustawić $ MAILTO na konto lokalne i kierować wyjście przez procmail.
źródło
Nigdy nie słyszałem o takim ustawieniu dla crona, więc wybrałbym drogę skryptową.
Utwórz zadanie cron do patrolowania / var / spool / cron / * i dołącz przekierowanie do każdego zadania, które go nie ma.
źródło
Inną opcją byłoby utworzenie skryptu powłoki o nazwie cron_wrapper lub coś takiego, i zrobienie czegoś takiego:
Następnie wszystkie twoje crontabs potrzebują czegoś takiego:
Uwaga: Nie testowałem tego kodu, to tylko pomysł.
źródło
Nie wiem, co to jest „standardowy cron”. Istnieje wiele demonów cron, różne dystrybucje używają różnych. Vixie cron jest najczęściej wdrażany, więc prawdopodobnie o to ci chodziło. Ale w niektórych dystrybucjach nie byłby domyślny.
Przejęłem rozwój cron Dillona (dcron), który jest domyślny w Arch Linux. Inne dystrybucje też go używają, ale nie wiem, czy jest to domyślna nigdzie indziej. dcron ma opcję wywołania,
-M
która określa, że chcesz użyć niestandardowego skryptu zamiast sendmaila. Skrypt jest wywoływany bez argumentów, z kilkoma nagłówkami wiadomości e-mail i danymi&>
wyjściowymi wszystkich cronjobs jako stdin. (Jeśli nie ma&>
danych wyjściowych, skrypt nie jest wywoływany).źródło
dlaczego nie ustawimy MAILTO = "" w konkretnym pliku crontab użytkownika. Spowoduje to wyłączenie rejestrowania wiadomości e-mail w / var / spool / mail /
źródło