Shebang: запустить небуферизованный Python от имени другого пользователя для перенаправления вывода в реальном времениPython

Программы на Python
Ответить
Anonymous
 Shebang: запустить небуферизованный Python от имени другого пользователя для перенаправления вывода в реальном времени

Сообщение Anonymous »

TL;DR
Я просто хочу запускать произвольные команды оболочки с пользователем статического сервиса и видеть их выходные данные в оболочке, а также захватывать их для последующего использования, т. е. отправлять по электронной почте и наблюдать перенаправленный вывод в файлах журналов в режиме реального времени.
К сожалению, наивные реализации оболочки Python отображают только весь захваченный вывод сразу.
Подробное описание задачи описание
Для записи в crontab мне нужно создать конкретный shebang в скрипте Python /home/svc_user/prj/wrapper.py. Должно быть достигнуто следующее:
  • Нацельтесь на конкретный исполняемый файл интерпретатора Python, который находится в виртуальной среде, т. е. /home/svc_user/prj/.venv/bin/python3
  • Я хочу перенаправить вывод скрипта (как stdout, так и stderr) в файл /home/svc_user/prj/logs/timestamped_log.txt и просматривайте изменения в режиме реального времени (сценарий использования: записывайте в файл длительное выполнение задания cron и иногда просматривайте выходные данные в реальном времени, чтобы проверить их)

    Это подразумевает запуск python3 -u
[*]Создание интерпретатора Python запускаться пользователем службы svc_user. Эффекты:
  • Идемпотент (т.е. без специального эффекта), если сценарий вызывается из кронтабу пользователя службы.
  • Но настоящий пользователь alice, имеющий права sudo, теперь должен автоматически запускать этот сценарий как svc_user при выполнении ./wrapper.py из своего/ее оболочки.
  • Это подразумевает добавление sudo -u svc_user

Как я могу связать это вместе, чтобы вызов из cron, который не предоставляет среду оболочки для сценария и чувствителен к синтаксису shebang, работает?
Я работаю с Debian/Ubuntu Linux.

Подробнее здесь: https://stackoverflow.com/questions/798 ... edirection
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

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

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»