Автор Тема: Запуск скрипта по крону  (Прочитано 5573 раз)

Оффлайн him

  • Завсегдатай
  • *
  • Сообщений: 1 032
Запуск скрипта по крону
« : 13.09.2018 11:21:22 »
Есть скрипт на питоне.
С консоли запускается и все отрабатывает.

Вешаю на крон. Не все работает.

Проблема возникает при попытке вывести код html на экран или в файл.

#!/usr/bin/python3.5

import requests

r = session.get(url)

print("point_1")  # сообщение видим через крон
print(r.text)  # тут ничего не выводится через крон
print("point_2") # тут ничего не выводится через крон

#!/usr/bin/python3.5

import requests

r = session.get(url)

h = open("1.html", "w")
h.write(r.text)  # файл создается, но он пустой

Пробовал в кроне прописывать так

/usr/bin/python3.5 /home/user/test.py > /home/user/log
/home/user/test.py > /home/user/log
/home/user/test.py > /dev/null 2>&1

Не помогло.

Подозреваю, что какие то проблемы с окружением, при запуске из крона.

Как можно скопировать это окружение в крон ??

Крон редактировал так

$ crontab -e

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 19 908
    • Домашняя страница
    • Email
Re: Запуск скрипта по крону
« Ответ #1 : 13.09.2018 12:49:53 »
Запустите скрипт с env с перенаправлением вывода в файл. И смотрите.
Андрей Черепанов (cas@)

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Re: Запуск скрипта по крону
« Ответ #2 : 13.09.2018 13:32:39 »
Есть скрипт на питоне.
С консоли запускается и все отрабатывает.

Вешаю на крон. Не все работает.

# ls -l /etc/cron.daily/
итого 1
-rwxr-xr-x 1 root root  55 янв  9  2018 logrotate
-rwx------ 1 root root 152 янв 16  2017 stmpclean
Цитировать
# file /etc/cron.daily/stmpclean
/etc/cron.daily/stmpclean: Bourne shell script text executable

Оффлайн him

  • Завсегдатай
  • *
  • Сообщений: 1 032
Re: Запуск скрипта по крону
« Ответ #3 : 13.09.2018 13:51:14 »
Запустите скрипт с env с перенаправлением вывода в файл. И смотрите.

Можно пример ??

Speccyfighter - сорри мысль тоже не уловил.


О! Мысль! Локаль! Выводим текст на экран и в файл. Локали в кроне нету. Как ее прописать ???
« Последнее редактирование: 13.09.2018 14:06:19 от him »

Оффлайн YYY

  • Мастер
  • ***
  • Сообщений: 5 950
Re: Запуск скрипта по крону
« Ответ #4 : 13.09.2018 14:32:09 »

крон системы или юзера?

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 19 908
    • Домашняя страница
    • Email
Re: Запуск скрипта по крону
« Ответ #5 : 13.09.2018 14:47:15 »
Запустите скрипт с env с перенаправлением вывода в файл. И смотрите.

Можно пример ??
#!/bin/sh
env >> /tmp/my_cron_call
Андрей Черепанов (cas@)

Оффлайн him

  • Завсегдатай
  • *
  • Сообщений: 1 032
Re: Запуск скрипта по крону
« Ответ #6 : 13.09.2018 15:01:35 »
Надо было просто открыть
$ crontab -e
и добавить строку
LANG=ru_RU.utf8

Все. :)

Может в дистрибутив по умолчанию добавить эту настройку планировщика  ?
По сути она логична, может даже еще какие переменные ..

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 099
Re: Запуск скрипта по крону
« Ответ #7 : 13.09.2018 17:23:36 »
Может в дистрибутив по умолчанию добавить эту настройку планировщика  ?
По сути она логична, может даже еще какие переменные ..
Логична, но не совсем: https://docs.altlinux.org/ru-RU/archive/2.4/html-single/master/alt-docs-faq/pt05.html#id2905008. Хотя, конечно, написано это было в стародавние времена (Master 2.4), и сейчас всё не на столько мрачно.

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Re: Запуск скрипта по крону
« Ответ #8 : 13.09.2018 20:21:10 »
Может в дистрибутив по умолчанию добавить эту настройку планировщика  ?

Зачем?
А потом и это выкручивать назад ещё одним костылём?

По сути она логична, может даже еще какие переменные ..

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

Оффлайн him

  • Завсегдатай
  • *
  • Сообщений: 1 032
Re: Запуск скрипта по крону
« Ответ #9 : 14.09.2018 09:24:31 »
Может в дистрибутив по умолчанию добавить эту настройку планировщика  ?
По сути она логична, может даже еще какие переменные ..
Логична, но не совсем: https://docs.altlinux.org/ru-RU/archive/2.4/html-single/master/alt-docs-faq/pt05.html#id2905008. Хотя, конечно, написано это было в стародавние времена (Master 2.4), и сейчас всё не на столько мрачно.

Не совсем проник конечно. У меня речь о пользователе, не о руте. А про сислог - на мой взгляд должен работать так и так, если он не работает, то кривой сислог. Просто логика. Возможно я не прав это было просто предложение. Если это что то портит. Прикольно, я что то себе испортил в кроне локалью. :)

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Re: Запуск скрипта по крону
« Ответ #10 : 14.09.2018 09:54:16 »
А про сислог - на мой взгляд должен работать так и так, если он не работает, то кривой сислог.

За логгирование на русском, линукс-программистам надо руки топором отрубать.

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 099
Re: Запуск скрипта по крону
« Ответ #11 : 14.09.2018 14:23:31 »
А про сислог - на мой взгляд должен работать так и так, если он не работает
Сислогу по барабану. Не по барабану может оказаться тому, кто это читать будет, да ещё не в той кодировке. :-)

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Re: Запуск скрипта по крону
« Ответ #12 : 14.09.2018 14:56:52 »
А про сислог - на мой взгляд должен работать так и так, если он не работает
Сислогу по барабану. Не по барабану может оказаться тому, кто это читать будет, да ещё не в той кодировке. :-)

когда на экран будет пытаться выбросить вместо однобайтной, двухбайтную кодировку. Такими логами зачитаешься :-)

Оффлайн him

  • Завсегдатай
  • *
  • Сообщений: 1 032
Re: Запуск скрипта по крону
« Ответ #13 : 14.09.2018 15:50:25 »
Цитировать
За логгирование на русском, линукс-программистам надо руки топором отрубать.

Поддерживаю.