Форум русскоязычного сообщества Ubuntu


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: Как запустить python-скрипт по расписанию?  (Прочитано 5009 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн EvangelionDeath

  • Администратор
  • Старожил
  • *
  • Сообщений: 3487
  • Ubuntu 22.04 х64
    • Просмотр профиля
Re: Как запустить python-скрипт по расписанию?
« Ответ #15 : 12 Апреля 2019, 21:32:11 »
У меня тут вопрос возник: а как вы собственно устанавливали дополнительные библиотеки через pip ?)
HP Pro 840 G3: Intel i5-6300U, 32GB DDR4 2133MHz, Intel 520, Intel Pro 2500 180GB/Ubuntu 22.04
Dell Latitude 5590: Intel i5-8350U, 16GB DDR4 2400MHz, Intel 620, Samsung 1TB/Ubuntu 22.04

Оффлайн zlodiak

  • Автор темы
  • Новичок
  • *
  • Сообщений: 18
    • Просмотр профиля
Re: Как запустить python-скрипт по расписанию?
« Ответ #16 : 12 Апреля 2019, 21:41:07 »
Проверь :

/bin/bash -c
Похоже ключ "-c" у тебя русская буква

да, заменил на латинский символ. теперь test.log всегда пустой. и /var/log/syslog не показывает ошибок, но по-прежнему python-скрипт не отрабатывает:

Apr 12 21:30:01 lenovo CRON[1144]: (root) CMD (/bin/bash -c '/usr/bin/python3 /home/kalinin/python/joba_finder/index.py' >> /home/kalinin/test.log 2>> /home/kalinin/test.log)
Apr 12 21:31:01 lenovo CRON[1157]: (root) CMD (/bin/bash -c '/usr/bin/python3 /home/kalinin/python/joba_finder/index.py' >> /home/kalinin/test.log 2>> /home/kalinin/test.log)
Apr 12 21:32:01 lenovo CRON[1326]: (root) CMD (/bin/bash -c '/usr/bin/python3 /home/kalinin/python/joba_finder/index.py' >> /home/kalinin/test.log 2>> /home/kalinin/test.log)
Apr 12 21:33:01 lenovo CRON[1384]: (root) CMD (/bin/bash -c '/usr/bin/python3 /home/kalinin/python/joba_finder/index.py' >> /home/kalinin/test.log 2>> /home/kalinin/test.log)
Apr 12 21:34:01 lenovo CRON[1440]: (root) CMD (/bin/bash -c '/usr/bin/python3 /home/kalinin/python/joba_finder/index.py' >> /home/kalinin/test.log 2>> /home/kalinin/test.log)


Пользователь добавил сообщение 12 Апреля 2019, 21:42:40:
У меня тут вопрос возник: а как вы собственно устанавливали дополнительные библиотеки через pip ?)

особо не задумывался над этим. просто гуглил команды и выполнял их. пока слабо представляю работу с pip
« Последнее редактирование: 12 Апреля 2019, 21:42:40 от zlodiak »

Оффлайн bezbo

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 1878
    • Просмотр профиля
Re: Как запустить python-скрипт по расписанию?
« Ответ #17 : 12 Апреля 2019, 21:49:48 »
* * * * $(which python3) /home/k/python/jf/index.py >> /home/k/test.log 2>&1
ls -ahl /home/k/python/jf/index.py?

Оффлайн EvangelionDeath

  • Администратор
  • Старожил
  • *
  • Сообщений: 3487
  • Ubuntu 22.04 х64
    • Просмотр профиля
Re: Как запустить python-скрипт по расписанию?
« Ответ #18 : 12 Апреля 2019, 21:51:12 »
zlodiak, ну ответ содержался в моем вопросе и вашем ответе на него.
Код: (bash) [Выделить]
* * * * * /bin/su <user> -c "/bin/bash -c '/usr/bin/python3 /home/kalinin/python/joba_finder/index.py'"
<user> заменить на пользователя, под которым оно все работает

(Нажмите, чтобы показать/скрыть)
« Последнее редактирование: 12 Апреля 2019, 21:53:14 от EvangelionDeath »
HP Pro 840 G3: Intel i5-6300U, 32GB DDR4 2133MHz, Intel 520, Intel Pro 2500 180GB/Ubuntu 22.04
Dell Latitude 5590: Intel i5-8350U, 16GB DDR4 2400MHz, Intel 620, Samsung 1TB/Ubuntu 22.04

Оффлайн ALiEN

  • Администратор
  • Старожил
  • *
  • Сообщений: 7820
  • We were here
    • Просмотр профиля
Re: Как запустить python-скрипт по расписанию?
« Ответ #19 : 12 Апреля 2019, 22:04:09 »
не проще ли использовать крон пользователя?
🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

Оффлайн zlodiak

  • Автор темы
  • Новичок
  • *
  • Сообщений: 18
    • Просмотр профиля
Re: Как запустить python-скрипт по расписанию?
« Ответ #20 : 12 Апреля 2019, 22:12:55 »
не проще ли использовать крон пользователя?

я бы рад, но не понимаю как им пользоваться.

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

Пользователь добавил сообщение 12 Апреля 2019, 22:14:11:
zlodiak, ну ответ содержался в моем вопросе и вашем ответе на него.
Код: (bash) [Выделить]
* * * * * /bin/su <user> -c "/bin/bash -c '/usr/bin/python3 /home/kalinin/python/joba_finder/index.py'"
<user> заменить на пользователя, под которым оно все работает

(Нажмите, чтобы показать/скрыть)

вы правы. но всё равно не запускается мой скрипт. вот что говорит лог:
Apr 12 22:08:01 lenovo CRON[2908]: (root) CMD (/bin/su kalinin -c "/bin/bash -c '/usr/bin/python3 /home/kalinin/python/joba_finder/index.py'")
Apr 12 22:08:01 lenovo systemd[1]: Started Session 594 of user kalinin.
Apr 12 22:08:02 lenovo CRON[2907]: (CRON) info (No MTA installed, discarding output)
Apr 12 22:08:02 lenovo console-kit-daemon[1483]: console-kit-daemon[1483]: GLib-CRITICAL: Source ID 220 was not found when attempting to remove it
Apr 12 22:08:02 lenovo console-kit-daemon[1483]: GLib-CRITICAL: Source ID 220 was not found when attempting to remove it

Оффлайн ALiEN

  • Администратор
  • Старожил
  • *
  • Сообщений: 7820
  • We were here
    • Просмотр профиля
Re: Как запустить python-скрипт по расписанию?
« Ответ #21 : 12 Апреля 2019, 22:15:51 »
открываете терминал
crontab -e
никаких sudo!
🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

Оффлайн zlodiak

  • Автор темы
  • Новичок
  • *
  • Сообщений: 18
    • Просмотр профиля
Re: Как запустить python-скрипт по расписанию?
« Ответ #22 : 12 Апреля 2019, 22:33:37 »
открываете терминал
crontab -e
никаких sudo!

аа.. вот вы про что. это я пробовал. в этом случае в gui текстовом редакторе открывается пустой файл, который невозможно сохранить: http://i.yapx.ru/D5I8U.png

Пользователь добавил сообщение 12 Апреля 2019, 22:39:24:
* * * * $(which python3) /home/k/python/jf/index.py >> /home/k/test.log 2>&1


kalinin@lenovo ~ $ ls -ahl /home/kalinin/python/joba_finder/index.py
-rwxrwxrwx 1 kalinin kalinin 1,1K апр 12 21:31 /home/kalinin/python/joba_finder/index.py

Apr 12 22:33:01 lenovo cron[841]: (root) RELOAD (crontabs/root)
Apr 12 22:33:01 lenovo CRON[4240]: (root) CMD ($(which python3) /home/kalinin/python/joba_finder/index.py >> /home/kalinin/test.log 2>&1)

сам файл test.log пуст


ТС, как видно по состоянию на 21/02/2020 потерял интерес к созданной им теме (пометка Решено в теме отсутствует, тема оставлена не закрытой, сообщений в теме давно не было). Тема стародавняя (последнее сообщение в топике: 13/04/2019; последнее сообщение от ТС в топике: 12/04/2019). Модератором раздела принято решение закрыть тему.
--zg_nico
« Последнее редактирование: 21 Февраля 2020, 15:07:23 от zg_nico »

Оффлайн victor00000

  • Старожил
  • *
  • Сообщений: 15568
  • Глухонемой (Deaf)
    • Просмотр профиля
Re: Как запустить python-скрипт по расписанию?
« Ответ #23 : 12 Апреля 2019, 22:41:42 »
echo $DISPLAY
крон и терминал.
Wars ~.o

Оффлайн EvangelionDeath

  • Администратор
  • Старожил
  • *
  • Сообщений: 3487
  • Ubuntu 22.04 х64
    • Просмотр профиля
Re: Как запустить python-скрипт по расписанию?
« Ответ #24 : 13 Апреля 2019, 00:19:08 »
сам файл test.log пуст
верю =) у меня тоже пустой. Но в то же время скрипт у меня запускается и работает (но отваливается при попытке писать в БД, так как я не создавал бд и ролей) Но ошибки и "выход" у меня пишуться в разные файлы.
Код: (bash) [Выделить]
E:: DB connection is failed. module 'credentials' has no attribute 'dbname'
« Последнее редактирование: 13 Апреля 2019, 00:20:48 от EvangelionDeath »
HP Pro 840 G3: Intel i5-6300U, 32GB DDR4 2133MHz, Intel 520, Intel Pro 2500 180GB/Ubuntu 22.04
Dell Latitude 5590: Intel i5-8350U, 16GB DDR4 2400MHz, Intel 620, Samsung 1TB/Ubuntu 22.04

Оффлайн ecc83

  • Старожил
  • *
  • Сообщений: 2121
  • Ubuntu Mate 22.04 LTS
    • Просмотр профиля
Re: Как запустить python-скрипт по расписанию?
« Ответ #25 : 13 Апреля 2019, 11:02:40 »
открываете терминал crontab -e никаких sudo!
аа.. вот вы про что. это я пробовал. в этом случае в gui текстовом редакторе открывается пустой файл, который невозможно сохранить

Вот это вот и странно. Откуда там графический редактор? Вы меняли в системе редактор по-умолчанию?
Как меняли? Что меняли ещё? Почему "невозможно сохранить"? Проблема с правами?
Почему не находится путь для сохранения? Что вы ещё не рассказали?

 

Страница сгенерирована за 1.345 секунд. Запросов: 24.