Запуск скрипта с помощью cron не работает на Mac - PullRequest
0 голосов
/ 02 февраля 2019

Я продолжаю пытаться запустить задание cron, которое выполняет скрипт на python каждую минуту.Выполнив «какой питон», я настроил задание cron следующим образом:

SHELL=/bin/bash
MAILTO=MyMac

PATH=bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin

*/1 * * * * * /Users/MyMac/anaconda3/bin/python
/Users/MyMac/desktop/cron_test/test.py

Описание задания находится в одной строке, а в конце определения есть символ новой строки.

Я получаю следующую ошибку в /var/mail/MyMac:

/bin/bash: AnacondaProjects: command not found

Итак, я удалил:

SHELL=/bin/bash

и получил:

/bin/sh: MyMac: command not found

Затем я попробовал всевозможные комбинации / usr / bin / python с или без lib, anaconda и т. д., с указанием или без указания PATH, SHELL, MAIL.К сожалению, безуспешно.

Что я делаю не так?

Редактировать

Итак, вот краткое изложение того, что я сделал в соответствии с полученными советами:

Я попытался:

* * * * * env > /tmp/env.output, 

Сначала я получил ошибку:

/bin/bash: /tmp/env.output: Permission denied, 

, поэтому я сделал cron Job как sudo.Путь в env.output:

PATH= bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/Users/MyMac/AnacondaProjects

Наконец, я установил свой cronjob (как обычный пользователь, а не sudo) на:

SHELL=/bin/bash
MAILTO=my_address@mail.com
PATH=bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/Users/MyMac/AnacondaProjects:/Users/MyMac/anaconda3/bin/python:/usr/bin/env

 * * * * * /Users/MyMac/anaconda3/bin/python /Users/MyMac/desktop/cron_test/test.py

Он все еще не работает.Код Python:

#!/usr/bin/env python
def main():
    f = open("test.txt", "w+")
    f.write("HELLO" + '\n')
    f.close()


if __name__ == "__main__":
    print("Print")
    main()

Я с нетерпением жду, чтобы получить и опробовать новые подходы.

Ответы [ 2 ]

0 голосов
/ 02 февраля 2019

Попробуйте сделать запись cron следующим образом:

* * * * * /Users/MyMac/anaconda3/bin/python /Users/MyMac/desktop/cron_test/test.py

Это будет запускаться каждую минуту

И на MAILTO cron ожидать адрес электронной почты, а не какое-либо имя

0 голосов
/ 02 февраля 2019

Попробуйте сделать следующее:

  • В первой строке скрипта вашего питона введите: #!/Users/MyMac/anaconda3/bin/python
  • Убедитесь, что ваш скрипт исполняемый: chmod +x /Users/MyMac/desktop/cron_test/test.py
  • Измените рецепт cron на: * * * * * * /Users/MyMac/desktop/cron_test/test.py, который говорит cron о выполнении задания каждую минуту
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...