У моєму Ubuntu-Desktop та на моєму сервері debian у мене є сценарій, який потрібно виконувати щохвилини (сценарій, який викликає хвилинний тиск мого космічного браузера ).
Проблема полягає в тому, що на деріабних похідних cron реєструється /var/log/syslog
щоразу, коли він виконується. У кінцевому підсумку я бачу повторне повідомлення, яке воно виконувалося знову і знову /var/log/syslog
:
Nov 11 16:50:01 eclabs /USR/SBIN/CRON[31636]: (root) CMD (/usr/bin/w3m -no-cookie http://www.spacetrace.org/secret_script.php > /dev/null 2>&1)
Я знаю, що для придушення виведення програми я можу перенаправити його /dev/null
, наприклад, щоб приховати всі повідомлення про помилки та попередження від програми, я можу створити рядок у crontab, як це
* * * * * root /usr/local/sbin/mycommand.sh > /dev/null
Але я хотів би запустити cronjob і бути впевненим, що всі генеровані вихідні дані або помилки передаються на NULL, тому він не генерує жодних повідомлень у syslog та не створює ніяких електронних листів
EDIT:
існує рішення перенаправити cron-журнали в окремий журнал, як запропоновано тут , змінивши/etc/syslog.conf
Але недолік полягає в тому, що тоді ВСІ вихідні дані з усіх кронівок переспрямовуються.
Чи можу я якось лише переспрямувати одну cronjob на окремий файл журналу? Переважно налаштовується всередині самого cron.hourly
файлу.
MAILTO=""
оскільки 1-й рядок crontab запобігає появі будь-яких листів. Крім того, використовуйте повний trifecta у своїх командних рядках, якщо ви пригнічуєте весь вихід. Усі 3 види переспрямовуються за допомогою цього рядка: >/dev/null 2>&1
- Звичайно, ви можете, щоб сценарій включав періодичні записи в окремий журнал.
MAILTO=""
на початку файл cron. Це придушить усі електронні листи. І я ніколи не чув про демона cron, який надсилає вихідну роботу в syslog (але, мабуть, це можливо).