Как установить полномочия так прогоны задания от крона

У меня есть сценарий Python, который хорошо работает. Я хочу выполнить его как задание крона каждые 10 минут

Я сделал crontab -e и вводимый строка

*/10 * * * * root python /path/to/script/script.py

Это, кажется, не работает.

Таким образом, я играл вокруг на командной строке и видящий, в которой точке она прекращает работать. Это работает в, он - каталог и все предшествующие ему, пока я не перемещаюсь из своего корневого каталога (т.е. если я нахожусь в /home/henry/ затем это работает, но если я нахожусь в, например, /var затем это не делает), когда я получаю ошибку разрешения, пытающуюся записать в файл.

# save this for next time
with open(mycsvfile, "w") as outfile:
    writer = csv.writer(outfile)
    writer.writerows([s.strip().encode("utf-8") for s in row ]for row in list_of_rows)
outfile.close()

Я уже сделал chmod +x /home/user/Location/Of/Script гарантировать сценарий имеет доступ (я думал). Что я пропускаю?Спасибо за помощь

3
задан 2 November 2016 в 17:27

1 ответ

Удалите строку root (принятие python существует в cron, определил PATH, иначе используйте полный путь, например, /usr/bin/python):

*/10 * * * * python /path/to/script/script.py
*/10 * * * * /usr/bin/python /path/to/script/script.py

, Почему:

  • , Когда Вы используете crontab -e для открытия таблицы крона, Вы открываете пользователя вызова crontab, никакое поле имени пользователя не позволяется (в отличие от этого /etc/crontab и /etc/cron.d/*)

  • Как есть теперь, Вы выполняете команду root (который, по-видимому, не доступен) с аргументами python и /path/to/script/script.py

Также, если Вы сделали исполняемый файл сценария, необходимо добавить хижину, указывающую на интерпретатор сценария (например, /usr/bin/python) вместо того, чтобы запустить скрипт как аргумент интерпретатору. Затем можно сделать:

*/10 * * * * /path/to/script/script.py
4
ответ дан 1 December 2019 в 15:53

Другие вопросы по тегам:

Похожие вопросы: