Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Общий по Linux (http://forum.oszone.net/forumdisplay.php?f=9)
-   -   [решено] Cron не отрабатывает sh скрипт от sudo (http://forum.oszone.net/showthread.php?t=348136)

beowulf0208 03-03-2021 19:53 2951695

Cron не отрабатывает sh скрипт от sudo
 
Здравствуйте. Собрал мини ПК на базе Raspberry Pi 4B, установил на него Twister OS и систему умного дома Domoticz. В итоге хотел сделать одну настройки в Domoticz с помощью cron и sh скрипта, но cron почемуто не отрабатывает sh скрипт. Если вручную запускать скрипт, то он работает как надо. Всё делал по инструкции с сайта.
Сам cron работает, вот что выдаёт комманда grep CRON /var/log/syslog:

Mar 3 20:40:01 raspberrypi CRON[16391]: (root) CMD (/etc/scripts/check_domoticz_online.sh > /dev/null 2>&1)
Mar 3 20:45:01 raspberrypi CRON[19221]: (root) CMD (/etc/scripts/check_domoticz_online.sh > /dev/null 2>&1)
Mar 3 20:50:01 raspberrypi CRON[22069]: (root) CMD (/etc/scripts/check_domoticz_online.sh > /dev/null 2>&1)
Mar 3 20:55:01 raspberrypi CRON[25156]: (root) CMD (/etc/scripts/check_domoticz_online.sh > /dev/null 2>&1)
Mar 3 21:00:01 raspberrypi CRON[28001]: (root) CMD (/etc/scripts/check_domoticz_online.sh > /dev/null 2>&1)
Mar 3 21:05:01 raspberrypi CRON[30847]: (root) CMD (/etc/scripts/check_domoticz_online.sh > /dev/null 2>&1)
Mar 3 21:10:01 raspberrypi CRON[1498]: (root) CMD (/etc/scripts/check_domoticz_online.sh > /dev/null 2>&1)

Вручную скрипт запускаю коммандой: sudo bash /etc/scripts/check_domoticz_online.sh
Пробовал сокращать задание cron из */5 * * * * /etc/scripts/check_domoticz_online.sh > /dev/null 2>&1 в */5 * * * * /etc/scripts/check_domoticz_online.sh, но это не помогло. Может кто-нибудь написать как правильно прописать задание в cron чтоб скрипт работал?

shisik 03-03-2021 20:23 2951698

Код:

sudo chmod +x /etc/scripts/check_domoticz_online.sh

Jula0071 03-03-2021 20:35 2951699

Скорее всего в кроне PATH неполный. Хотя скрипт только curl'ом урл дёргает. Ну или шелл там используется не bash по умолчанию.
Цитата:

Цитата beowulf0208
Пробовал сокращать задание »

Для дебага сделайте так
Код:

sudo crontab -e -u root
SHELL=/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
*/5 * * * * /etc/scripts/check_domoticz_online.sh >> /tmp/check_domoticz_online.log 2>&1

В /tmp/check_domoticz_online.log будет выхлоп (если будет, т.е. моё вангование про SHELL и PATH не угадало)

Цитата:

Цитата shisik
sudo chmod +x »

Вручную-то работает, дело не в отстутствии execute bit

beowulf0208 03-03-2021 21:16 2951702

Цитата:

Цитата shisik
sudo chmod +x /etc/scripts/check_domoticz_online.sh »

Спасибо. Комманда помогла и всё заработало согласно инструкции с сайта. Я сделал немного по другому и в задание cron прописал:
*/5 * * * * bash /etc/scripts/check_domoticz_online.sh > /dev/null 2>&1
так тоже работало, но Ваш вариант удобнее.

shisik 03-03-2021 21:31 2951703

Цитата:

Цитата Jula0071
Вручную-то работает, дело не в отстутствии execute bit »

Вручную работало как

Код:

sudo bash скрипт
что как бы намекает на отсутствие execute bit

Цитата:

Цитата beowulf0208
Я сделал немного по другому и в задание cron прописал:
*/5 * * * * bash /etc/scripts/check_domoticz_online.sh > /dev/null 2>&1 »

Или так

Jula0071 03-03-2021 21:41 2951705

Цитата:

Цитата shisik
что как бы намекает на отсутствие execute bit »

А этот момент я провафлил, поверил ТС, что
Цитата:

Цитата beowulf0208
Всё делал по инструкции с сайта. »

Там явно сказано
Код:

root@rp1> chmod 755  /etc/scripts/check_domoticz_online.sh
PS Не верь рукожопам, ссылающимся на инструкции.


Время: 07:30.

Время: 07:30.
© OSzone.net 2001-