Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Linux и FreeBSD » Общий по Linux » Debian/Ubuntu - [решено] Cron не отрабатывает sh скрипт от sudo

Ответить
Настройки темы
Debian/Ubuntu - [решено] Cron не отрабатывает sh скрипт от sudo

Аватара для beowulf0208

Пользователь


Сообщения: 143
Благодарности: 6


Конфигурация

Профиль | Отправить PM | Цитировать


Здравствуйте. Собрал мини ПК на базе 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 чтоб скрипт работал?

-------
Лучший антивирус для домашнего ПК - avast.com/get/2fldBDYI


Отправлено: 19:53, 03-03-2021

 

Аватара для shisik

Ветеран


Сообщения: 3247
Благодарности: 596

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
sudo chmod +x /etc/scripts/check_domoticz_online.sh
Это сообщение посчитали полезным следующие участники:

Отправлено: 20:23, 03-03-2021 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Забанен


Сообщения: 6345
Благодарности: 1436

Профиль | Цитировать


Скорее всего в кроне 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

Отправлено: 20:35, 03-03-2021 | #3


Аватара для beowulf0208

Пользователь


Сообщения: 143
Благодарности: 6

Профиль | Отправить PM | Цитировать


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

-------
Лучший антивирус для домашнего ПК - avast.com/get/2fldBDYI


Отправлено: 21:16, 03-03-2021 | #4


Аватара для shisik

Ветеран


Сообщения: 3247
Благодарности: 596

Профиль | Отправить PM | Цитировать


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

Код: Выделить весь код
sudo bash скрипт
что как бы намекает на отсутствие execute bit

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

Отправлено: 21:31, 03-03-2021 | #5


Забанен


Сообщения: 6345
Благодарности: 1436

Профиль | Цитировать


Цитата shisik:
что как бы намекает на отсутствие execute bit »
А этот момент я провафлил, поверил ТС, что
Цитата beowulf0208:
Всё делал по инструкции с сайта. »
Там явно сказано
Код: Выделить весь код
root@rp1> chmod 755  /etc/scripts/check_domoticz_online.sh
PS Не верь рукожопам, ссылающимся на инструкции.

Отправлено: 21:41, 03-03-2021 | #6



Компьютерный форум OSzone.net » Linux и FreeBSD » Общий по Linux » Debian/Ubuntu - [решено] Cron не отрабатывает sh скрипт от sudo

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Как правильно написать sh для коректной работы в cron? zai Программирование в *nix 3 29-08-2016 14:10
Разное - [решено] Не отрабатывает скрипт создания точки восстановления. sonyas75 Microsoft Windows 10 16 22-07-2016 09:35
2008 R2 - [решено] Не отрабатывает logon скрипт nokogerra Windows Server 2008/2008 R2 10 15-08-2014 14:11
Не отрабатывает logoff скрипт в групповой политике FreedomF2000 Microsoft Windows NT/2000/2003 0 30-12-2010 11:21
FreeBSD - [решено] Скрипт с cron-a не отрабатывает до конца. andragen Общий по FreeBSD 6 01-04-2010 14:51




 
Переход