Рейтинг:0

Cron Tab как конкретный пользователь и виртуальная среда python

флаг us

Желание запускать ежечасное задание cron от имени конкретного пользователя (xfeautomation) и виртуальной среды Python.При запуске от имени конкретного пользователя мне нужно будет добавить местоположение скрипта в PATH? Моя текущая работа cron выглядит так:

0 * * * * xfeautomation /opt/scripts/wf_venv/bin/python /opt/scripts/wf_api_linux.py 2>&l /opt/scripts/log.txt

Это правильный или оптимальный путь? ТИА

Рейтинг:1
флаг ng

переключиться на этого пользователя.

судо су - xfeautomation

Бег

кронтаб -е

Появится файловый редактор с пустым файлом. Добавьте туда свою работу без имени пользователя и сохраните ее.

0 * * * * /opt/scripts/wf_venv/bin/python /opt/scripts/wf_api_linux.py 2>&l /opt/scripts/log.txt

Проверка:

судо су - xfeautomation кронтаб -л

ИЛИ ЖЕ

sudo crontab -u xfeautomation

Рейтинг:0
флаг ar
bob

При запуске от имени конкретного пользователя мне нужно будет добавить местоположение скрипта в PATH?

Обычно вам не нужно изменять переменную окружения PATH, когда вы используете абсолютные пути, как вы делаете сейчас с /opt/scripts/wf_venv/bin/python /opt/scripts/wf_api_linux.py 2>&l /opt/scripts/log.txt

В качестве системного администратора у вас есть несколько вариантов создания запланированных пакетных заданий, которые выполняются под другим идентификатором пользователя:

  1. Как поясняется в этот ответ: настроить персональный crontab для этого пользователя. Задания в личном crontab всегда будут выполняться под идентификатором пользователя их владельца.
    Обратите внимание, что когда вы, как администратор, настраиваете персональный crontab для другого пользователя, этот пользователь сможет изменять и удалять эту спецификацию задания cron, отменяя вашу работу.

  2. В качестве альтернативы вы можете запланировать системное задание из системного crontab. Системный crontab (обычно /и т.д./кронтаб и/или вставные файлы в /etc/cron.d/) принадлежит пользователю root и не может быть изменен непривилегированными пользователями. Спецификация задания в системном crontab поддерживает дополнительное поле, отсутствующее в личных файлах crontab: для поля № 6 требуется имя пользователя, например xfeautomation идентификатора пользователя, который будет использоваться для выполнения задания.
    Опубликованный вами синтаксис верен для записи в /и т.д./кронтаб или вставной файл, например /etc/cron.d/wf_api_linux

    0 * * * * xfeautomation /opt/scripts/wf_venv/bin/python /opt/scripts/wf_api_linux.py 2>&l /opt/scripts/log.txt
    

Поскольку вы регистрируете все выходные данные и ошибки, это не проблема, но обычно cron отправляет стандартные выходные данные и ошибки по электронной почте пользователю root, когда вы настраиваете системный crontab, и непосредственно пользователю при использовании личного crontab.

Насколько я знаю, оба метода фактически приводят к одинаковым условиям для работы, и, если не считать опасений по поводу владения спецификацией работы и электронными письмами, они эквивалентны.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.