Назад | Перейти на главную страницу

Crontab влияет на сценарий bash, если условие?

Я немного сбит с толку и не совсем уверен, как это отладить. У меня есть самописный сценарий bash, который проверяет, активен ли общий ресурс samba, а если нет, отправляет мне электронное письмо.

Скрипт находится в / root / SKRIPTS /, разрешение выглядит так:

-rwxr-xr-x   1 root  wheel   281 Nov  8 08:54 test_samba_shares.sh
-rwx------   1 root  wheel    39 Nov  7 13:56 smbclient.cred

Содержимое сценария .sh следующее:

smbclient -L 10.0.0.1 -A /root/SKRIPTS/smbclient.cred | grep -q Backup

if [ $? -eq 0 ]
then
    echo "Backup_* mounted, nothing to do"
else
    echo "Subject: Samba has failed" | /usr/sbin/sendmail -v mail@localmail.server
fi

return 1;

/ etc / crontab выглядит так (только ввод)

10 1 * * * root /root/SKRIPTS/test_samba_shares.sh

Дело в том, что если я, как root, запускаю это, он работает безупречно. Но каждую ночь я получаю электронное письмо о том, что samba не удалось, указывая на то, что скрипт cron каким-то образом попадает в путь else. Как это может быть? Я упустил что-то очевидное? Как лучше всего отладить это?

Спасибо за вашу помощь

Иногда задания cron не запускаются с $PATH что вы могли ожидать. Прежде всего, я бы попытался полностью определить путь к вашему smbclient исполняемый файл, просто чтобы исключить это как возможность. Или явно экспортируйте свой PATH в скрипте-оболочке, вызываемом cron.