특정 사용자로서의 Cron 탭 및 Python 가상 환경

특정 사용자로서의 Cron 탭 및 Python 가상 환경

특정 사용자(xfeautomation) 및 Python 가상 환경으로 시간별 cron 작업을 실행하려고 합니다. 특정 사용자로 실행하는 경우 스크립트 위치를 PATH에 추가해야 합니까? 내 현재 크론 작업은 다음과 같습니다.

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

이것이 올바른 방법인가요, 아니면 최적의 방법인가요? 티아

답변1

해당 사용자로 전환하세요.

sudo su - xfeautomation

달리다

crontab -e

빈 파일이 있는 파일 편집기가 나타납니다. 여기에 사용자 이름 없이 작업을 추가하고 저장합니다.

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

확인:

sudo su - xfeautomation crontab -l

또는

sudo crontab -u xfeautomation

답변2

특정 사용자로 실행하는 경우 스크립트 위치를 PATH에 추가해야 합니까?

현재와 ​​같이 절대 경로를 사용하는 경우 일반적으로 PATH 환경 변수를 수정할 필요가 없습니다./opt/scripts/wf_venv/bin/python /opt/scripts/wf_api_linux.py 2>&l /opt/scripts/log.txt

sysadmin으로서 다른 사용자 ID로 실행되는 예약된 일괄 작업을 생성할 수 있는 몇 가지 옵션이 있습니다.

  1. 설명된 대로이 답변:해당 사용자에 대한 개인 crontab을 설정하십시오.. 개인 crontab의 작업은 항상 소유자의 사용자 ID로 실행됩니다.
    관리자가 다른 사용자를 위해 개인 crontab을 설정하면 해당 사용자는 해당 cron 작업 사양을 수정 및 삭제하여 작업을 취소할 수 있습니다.

  2. 또는 다음을 수행할 수 있습니다.시스템 crontab에서 시스템 작업 예약. 시스템 crontab(일반적으로 /etc/crontab및/또는 의 드롭인 파일 /etc/cron.d/)은 루트가 소유하며 권한이 없는 사용자가 수정할 수 없습니다. 시스템 crontab의 작업 사양은 개인 crontab 파일에 없는 추가 필드를 지원합니다. 필드 #6에는 xfeautomation작업을 실행하는 데 사용될 사용자 ID와 같은 사용자 이름이 필요합니다.
    게시한 구문은 다음 /etc/crontab과 같은 항목이나 드롭인 파일에 대해 정확합니다./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은 시스템 crontab을 설정할 때 루트에 표준 출력과 오류를 이메일로 보내고 개인 crontab을 사용할 때는 사용자에게 직접 이메일을 보냅니다.

내가 아는 한 두 방법 모두 작업에 대해 동일한 조건을 가져오며 작업 사양 및 이메일의 소유권에 대한 우려를 제외하고는 동일합니다.

관련 정보