ошибка crontab с (Никакой установленный MTA), но я использую>/dev/null 2> &1

Пакет, который Вы выбрали, актуален, можно только сделать переустановку как Синаптический предложенный Диспетчер пакетов.

Если Ваш update manager не показывает пакета, чтобы обновить, попробовать, обновляют кэш пакета, IIRC, там a Update кнопка можно нажать (или sudo apt-get update в CLI). Если это все еще ничего не содержит, нет никакого доступного обновления пакета.

6
21.08.2014, 14:58
3 ответа

Конечно, ошибка в том, что у вас не реализован и не активен почтовый ящик (sendmail, postfix и т.д.).

Другая ваша проблема в том, что >/dev/null 2>&1 ТОЛЬКО применяется/присоединяется только к команде ПОСЛЕДНИЙ в данном случае gzip. Таким образом, должен быть какой-то тип вывода в STDERR для вашего mysqldump.

Правильный способ делать то, что я думаю, вы хотите:

 * * * * *  (command | command ) >/dev/null 2>&1
11
27.01.2020, 20:21

Если пользователь, выполняющий команду crontab является бродягой , а каталог, в который записывается вывод, принадлежит root и имеет права 755, то он не может быть записан в
sudo chown vagrant /var/backup/all
, то это можно исправить.

Чтобы проверить, в чем проблема, попробуйте записать в файл в /tmp вместо этого.

Но есть еще одна проблема: команда типа
mysqldump mydb | gzip > database. sql.gz >/dev/null 2>&1
записывает дамп базы данных в database.sql.gz и в /dev/null.
. 2>&1 копирует сообщения об ошибках в стандартный вывод, то есть также записывает сообщения об ошибках в database.sql.gz. Он записывает текст сообщения об ошибке только где-то между сжатыми данными, так что сжатый файл будет разбит. Обратите внимание, что это может хорошо работать при тестировании - так как проблема возникает только тогда, когда что-то записывается в стандартный поток ошибок. Вывод в stderr может быть просто предупреждением, в то время как все остальное работает.

Я предполагаю, что вы собираетесь записать сжатый дамп базы данных в файл sql.gz, а ошибки в /dev/null. Для этого просто держите выходные потоки раздельными, не копируя поток ошибок в выходной поток. И направьте их в файлы следующим образом:

mysqldump mydb | gzip > /var/backup/all/database_`date +%Y-%m-%d`.sql.gz 2>/dev/null

Сообщение об ошибке "(MTA не установлено, сброс вывода)" - это сообщение cron о том, что он не может отправить вам вывод об ошибке. В конце концов, это не будет проблемой, так как вы перенаправите ошибки на /dev/null, в любом случае, отправлять нечего. Но я подозреваю, что в настоящее время есть сообщения об ошибках, которые должны подтвердить мои выводы, приведенные выше.

.
1
27.01.2020, 20:21

Вы можете поместить:

MAILTO=""

в начало вашего файла crontab, и это предотвратит попытки отправки электронной почты.

5
27.01.2020, 20:21

Теги

Похожие вопросы