У меня свежая установка Ubuntu 12.04.1 LTS и нескольких серверов.
Я не добавлял никаких заданий cron и не редактировал свой crontab на этих серверах, однако примерно в одно и то же время для каждой машины я получаю 75% -й всплеск ЦП и следующую информацию в моем системном журнале во время всплеска:
CRON[8380]: (CRON) info (No MTA installed, discarding output)
Я установил mono-complete и запускаю веб-сервер стека служб.
Каков наилучший способ остановить это? Я хотел бы иметь возможность удалить всплеск процессора.
Ответы:
Linux использует почту для отправки уведомлений пользователю. В большинстве дистрибутивов Linux установлен почтовый сервис (включая MTA). Ubuntu не все же.
Вы можете установить почтовый сервис, например, postfix, чтобы решить эту проблему.
Или вы можете игнорировать это. Я не думаю, что неспособность cron отправлять сообщения имеет какое-либо отношение к пику процессора (это связано с основной работой, которую выполняет cron). Может быть безопаснее установить MTA, а затем прочитать сообщения (
mutt
это хороший системный почтовый ридер).источник
mail
предоставляетсяmailutils
(debian), есть ли лучший способ, встроенный в postfix?Это происходит потому, что ваши задания cron производят вывод, а затем демон cron пытается отправить вам этот вывод (т. Е. Root) по электронной почте. Если вам не нужен этот вывод, самый простой способ решить это - сбросить его в crontab:
и добавить
>/dev/null 2>&1
к каждой работе:источник
No MTA installed, discarding output
сообщений в журнале, и моя программа в конечном итоге перестает работать самостоятельно. Я полагаю, что это из-за скачка процессора. Похоже, что все ответы на этот вопрос, кажется, игнорируют это.logger
. Например,yourCommand >/dev/null 2>&1 | logger -t mycmd
. Это поместит вывод в системный журнал для безопасного хранения и остановит жалобы MTA.В моем случае сообщение намекало на проблему с правами доступа в скрипте bash, но я не мог его увидеть, пока не установил MTA.
Как предположил, я побежал:
Я выбрал «Local» во время установки и после запуска задания cron снова:
В моем случае я заменил
с "корнем".
Затем я смог увидеть вывод ошибок, связанных с разрешениями.
источник
Как указывалось в предыдущем ответе, это происходит потому, что ваши задания cron выдают выходные данные, а затем демон cron пытается отправить вам этот вывод по электронной почте. Если вы не хотите (или не можете) установить MTA, но хотите увидеть вывод, вы можете перенаправить вывод задания cron в файл журнала. Отредактируйте файл crontab с помощью
(используйте,
sudo
если проблема связана с корневым каталогом root) и добавляйте после каждой команды, например так:>> /some/log/file 2>&1
Если есть несколько команд на линии, разделенные
;
,&&
или||
, вы должны сделать выше для каждой команды, как это:или сгруппировать их, вот так:
Если вы хотите игнорировать стандартный вывод и захватывать только стандартный вывод, используйте вместо этого. Поместите файл журнала куда угодно - в свой домашний каталог или даже если вы уверены, что вам не нужно его хранить.
> /dev/null 2>> /some/log/file
/var/log
/tmp
Затем посмотрите на файл журнала после выполнения задания.
источник
В crontab добавьте это как первую строку:
Это предотвратит попытку отправки электронной почты cron.
источник
#
) после,MAILTO=""
иначе это не сработаетЕсли вы не хотите устанавливать MTA (который мне сейчас не нужен), вы можете направить результаты работы cron в файл журнала.
тогда с твоим cron работа будет выглядеть так.
тогда вы можете просто хвост бревно и посмотреть, что случилось
Это то, что я делал на любом сервере, который я вижу это сообщение в системном журнале
источник
Это старый вопрос, но есть дополнительный ответ, который полезен в некоторых обстоятельствах.
Передайте выходные данные вашей команды cron,
logger
чтобы они оказались в системном журнале.Это немного проще, чем установка postfix, и он помещает этот вывод в системный журнал вместе с другими вашими журналами. Эта команда перехватывает stdout и stderr, поэтому вы не увидите
No MTA installed
сообщение и увидите все свои выходные данные в системном журнале.Пример записи cron:
Вы можете просматривать журналы с вашим тегом,
mycmd
используя:источник
Один побочный эффект добавления
/dev/null 2>&1
к команде хрон рабочих мест, в том , что она будет отбрасывать какSTDERR
иSTDOUT
(Standard Error, а также выход). Это прекрасно работает, если вы не хотите получать письма от cron. Но если вы хотите, чтобы ваши ошибки отправлялись по электронной почте, используйте>/dev/null
вместо этого. Прочтите этот пост в блоге для более подробного объяснения .Вам все равно нужно установить MTA (агент передачи почты), чтобы отправлять сообщения об ошибках. Postfix достаточно прост в установке:
sudo apt-get install postfix
источник
Сначала установите
postfix
, что может решить проблемуЕсли Ubuntu, вы можете редактировать
crontab
файлВнимание , отредактируйте верхний файл , нет кода в первой строке , и введите
При выполнении
cron
любого задания , вы получите электронное письмоисточник
Вы можете установить
MAILTO=””
переменную в начале вашегоcrontab
файла. Это также отключит оповещение по электронной почте. Редактировать / открыть ваши задания cron:В верхней части файла введите:
https://www.cyberciti.biz/faq/disable-the-mail-alert-by-crontab-command/
источник
У меня была эта проблема с использованием инструментов Kitematic Docker .
Перейдите к контейнеру magento и нажмите
exe
.Тогда беги
Это если вы пытаетесь заставить magento работать на kitematic. Журнал покажет эту ошибку на виртуальной машине:
Извините, если это потеряло вас, но вот как это работает. Вы продолжаете заблудиться, но просто читайте об этом, и кусочки соберутся однажды. Потерпи.
источник