Puncte:0

Cron Tab ca utilizator specific și mediu virtual python

drapel us

Doriți să rulați un job cron orar ca utilizator specific (xfeautomation) și mediu virtual python.Rulând ca un anumit utilizator, va trebui să adaug locația scriptului în PATH? Jobul meu actual cron arată astfel:

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

Este acesta modul corect sau optim? TIA

Puncte:1
drapel ng

comutați la acel utilizator.

sudo su - xfeautomation

Alerga

crontab -e

Va apărea un editor de fișiere cu fișierul gol. Adăugați acolo jobul dvs. fără nume de utilizator și salvați-l.

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

Verificare:

sudo su - xfeautomation crontab -l

SAU

sudo crontab -u xfeautomation

Puncte:0
drapel ar
bob

Rulând ca un anumit utilizator, va trebui să adaug locația scriptului în PATH?

De obicei, nu trebuie să modificați variabila de mediu PATH atunci când utilizați căi absolute, cum faceți acum cu /opt/scripts/wf_venv/bin/python /opt/scripts/wf_api_linux.py 2>&l /opt/scripts/log.txt

În calitate de administrator de sistem, aveți mai multe opțiuni pentru a crea joburi batch programate care rulează sub un alt ID de utilizator:

  1. După cum se explică în acest raspuns: configurați un crontab personal pentru acel utilizator. Lucrările dintr-un crontab personal vor rula întotdeauna sub ID-ul de utilizator al proprietarului lor.
    Rețineți că atunci când dvs., în calitate de administrator, configurați un crontab personal pentru un alt utilizator, acel utilizator va putea modifica și șterge specificația jobului cron, anulând munca dvs.

  2. Alternativ, poți programați o lucrare de sistem din crontab de sistem. Sistemul crontab (de obicei /etc/crontab și/sau fișiere drop-in în /etc/cron.d/) este deținut de root și nu poate fi modificat de utilizatori neprivilegiati. Specificația jobului din sistemul crontab acceptă un câmp suplimentar care nu este prezent în fișierele crontab personale: câmpul #6 necesită un nume de utilizator, cum ar fi xfeautomatizare a ID-ului utilizatorului care va fi folosit pentru a executa jobul.
    Sintaxa pe care ați postat-o ​​este corectă pentru o intrare în /etc/crontab sau un fișier drop-in ca /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
    

Deoarece înregistrați toate ieșirile și erorile nu reprezintă o preocupare, dar, în mod normal, cron va trimite prin e-mail rezultatul standard și erorile la root atunci când configurați un crontab de sistem și direct către utilizator atunci când utilizați un crontab personal.

Din câte știu efectiv, ambele metode duc la aceleași condiții pentru job și, în afară de preocupările legate de proprietatea specificațiilor postului și a e-mailurilor, ele sunt echivalente.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.