Корневой Cronjob не работает правильно, пользователь Cronjob делает - PullRequest
0 голосов
/ 06 июня 2019

Я пытаюсь запустить корневой cronjob для выполнения скрипта.

Вот червон, который я положил в sudo crontab -e:

*/1 * * * * ~/temperature_log/logtemp.sh >> ~/temperature_log/templog.log>&1

Для сценария требуется разрешение root для hddtemp. К сожалению, файл templog.log никогда не появляется. Системный журнал говорит:

Jun  6 13:09:01 user CRON[32433]: (root) CMD (~/temperature_log/logtemp.sh >> ~/temperature_log/templog.log>&1)
Jun  6 13:09:01 user CRON[32426]: (CRON) info (No MTA installed, discarding output)

Так что, очевидно, скрипт выполняется, но оттуда что-то идет не так.

Даже незнакомец: если я запускаю пользовательский cron только через crontab -e, скрипт выполняется (хотя и без полномочий root, поэтому он мне не нужен) и записывает файл журнала.

Как я могу убедиться, что мой корневой crontab работает правильно?

Я подключаюсь к этому компьютеру через ssh как пользователь без прав root, но у меня есть пароль root.

EDIT

Я изменил программу сейчас, я хочу, чтобы она входила в системный журнал через logger. Опять же, запуск сценария вручную работает и он регистрируется правильно, но запуск его из crontab просто показывает это:

Jun 6 14:27:01 user CRON[1657]: (root) CMD (Jun 6 15:06:01 insystems CRON[25328]: (root) CMD (/bin/sh ~/temperature_log/logtemp.sh)

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

Ответы [ 2 ]

0 голосов
/ 06 июня 2019

Мое решение было добавить cronjob не к crontab -e, а к /etc/crontab.Оттуда все работало без проблем.

Возможно, я допустил ошибку в другом файле crontab, но это решение мне подходит.

0 голосов
/ 06 июня 2019

Вы написали скрипт для отправки оповещений по электронной почте? Предупреждение "(MTA не установлен, отбрасывается вывод)" появляется, когда почтовый сервис не установлен.

В большинстве дистрибутивов Linux установлена ​​почтовая служба (включая MTA). Хотя Ubuntu этого не делает.

Для решения этой проблемы вы можете установить почтовый сервис, например, postfix.

sudo apt-get install postfix

Также попробуйте указать полный путь к файлам (абсолютный путь): ~ / Temperature_log / logtemp.sh и ~ / Temperature_log / templog.log

Убедитесь, что logtemp.sh имеет разрешение на выполнение. Если нет, то введите команду

chmod +x logtemp.sh
...