sendmail с работой cron

Я написал скрипт, и все работает так хорошо в соответствии с моими потребностями:

a=$(df -h /mnt/smb | tail -n +3 | tr -s ' ' | tr '%' ' ' | cut -d ' ' -f 5)
echo $a

if [[ $a -ge 30 ]]; then
    cat /etc/diskspace/text.txt | sendmail test.gmail.com
fi

Я хочу запускать этот скрипт каждую минуту через Cron, см. Мой crontab:

* * * * * /etc/diskspacae/vpndrive.sh

Как вы можете видеть, после запуска этого скрипта, если дисковое пространство превышает 80%, я хочу использовать sendmail для получения уведомления по электронной почте.

Но у меня его нет, когда я запускаю этот скрипт из Cron, и у меня есть это сообщение об ошибке в /var/spool/mail/root.

ERROR Message: /etc/diskspace/vpndrive.sh line 34 : sendmail: command not found. 
4
задан 11 October 2017 в 20:21

2 ответа

Не забывайте, что сценарий, выполняемый Кроном, работал в среде с ограниченной переменной ПУТИ. Это означает, что на консоли при тестировании сценария консольная оболочка найдет sendmail без проблемы. Но когда работал от Крона, sendmail не найден.

Наиболее успешная практика, когда запись сценариев для Крона должна поместить полный путь для доступа к команде, Вы хотите работать, только быть уверенными.

Обычно, sendmail двоичный файл является установкой под /usr/sbin, путь, который не является частью каталогов, искавших Кроном по умолчанию. Таким образом, я советовал бы к:

  1. Ищите место sendmail двоичного файла (locate sendmail или find / -type f -name sendmail) если locate не установлен),
  2. Запишите полный путь для выполнения sendmail в сценарии
12
ответ дан 11 October 2017 в 20:21

По всей вероятности sendmail не установлен.

Для установки его тип sudo apt-get install sendmail в терминале.

Для дальнейшей конфигурации посещают подобный вопрос: , как настроить sendmail на человечности?

1
ответ дан 11 October 2017 в 20:21

Другие вопросы по тегам:

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