@reqww

Почему не работает crontab?

Пытаюсь с помощью простого скрипта и функции на питоне периодически переписывать HTML файл, записывая туда каждую минуту текущее время работа nginx сервера.
Проблема в том, что если запускать скрипт через bash, то все отлично переписывается, но почему-то через cron файл переписывать не хочет.
В чем может быть проблема?
P.S. Все это происходит на удаленной виртуальной машине, к которой я подключился через PuTTy.

Теперь конкретнее.
В cron у меня на писано следующее:
5ee0ebc112bc9364082117.png
Это файл time.sh:
В time.sh написано:
!#/bin/bash
sudo python3 update

update - функция питона
5ee0eb24ad8eb932230097.png
  • Вопрос задан
  • 141 просмотр
Решения вопроса 1
@galaxy
Пишите везде полные пути: до питона, до файла
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@rionnagel
ковырятель
Кронтабы бывают разные. Что вы редактитруете и как? Через crontab -e или /etc/crontab? В /etc/crontab надо пользователя указывать, через crontab -e - нет. Переменных путей лучше избегать.
Ответ написан
alpik
@alpik
no I, no mine
Проверьте несколько моментов:

1) Запускать юзерский скрипт из хоумдир под рутом - плохая идея. "Доброжелатель" с доступом к юзерскрипту поднимет привелегии не напрягаясь.
Если вам действительно нужно запускать под рутом (зачем?) - положите скрипт в домашнюю директорию /root

2) Если вам нужно запускать крон под рутом - запускайте его так:
sudo crontab -e
Если под обычным пользователем
crontab -e (либо sudo crontab -u username -e)

3) Проверьте, что вы запускаете.
Вам точно нужно запускать шелл скрипт из одной строчки, который запускает пайтон скрипт?
У вас в начале скрипта уже есть директива, чем его запускать.
почему бы просто не сделать так:
* * * * * /path/to/python-script.py > /home/user/debug.log 2>&1 # если хотите увидеть вывод скрипта/ошибки

4) Сделайте скрипт исполняемым
chmod +x /path/to/python-script.py
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы