Я немного сбит с толку и не совсем уверен, как это отладить. У меня есть самописный сценарий 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.