cron 작업에 대한 HTTP 프록시 변수를 어떻게 설정해야 합니까?

cron 작업에 대한 HTTP 프록시 변수를 어떻게 설정해야 합니까?

HTTP 프록시를 통해 모든 트래픽을 라우팅하는 crontab에서 실행해야 하는 Python 스크립트가 있습니다.

/etc/profile나는 다음을 사용하여 프록시를 설정했습니다.

http_proxy=http://192.168.0.1:3128    # (Address changed for privacy)
https_proxy=http://192.168.0.1:3128
export http_proxy
export https_proxy

물론 터미널에서 myscript.py를 실행하면 제대로 작동하지만 작업이 crontab에 추가되면 런타임 시 표준 서버 IP를 사용하는 상태로 되돌아갑니다.

cron에서 실행되는 Python 스크립트가 프록시를 사용하는지 확인하는 가장 안전한 방법은 무엇입니까? 추가한다고 언급한 사람을 찾았어요

HTTP_PROXY=http://192.168.0.1:3128
HTTPS_PROXY=http://192.168.0.1:3128

크론탭 상단으로. 이는 간단한 Python 스크립트를 사용하여 IP 검사기 웹사이트를 테스트할 때 작동하는 것처럼 보이지만 이것이 가장 안전한 접근 방식입니까?

내가 찾은 오래된 게시물 외에는 이에 대한 문서가 없습니다.

답변1

두 번째 예는 올바른 접근 방식처럼 보이지만 HTTP 라이브러리에서 예상하는 대로 변수 이름을 소문자로 변경해야 합니다.

crontab 파일 형식에 대한 매뉴얼 페이지(예: crontab(5)-아니요 crontab(1))설명하다:

crontab의 활성 행은 환경 설정 또는 cron 명령일 수 있습니다. crontab 파일은 위에서 아래로 구문 분석되므로 모든 환경 설정은 파일에서 그 아래에 있는 cron 명령에만 영향을 미칩니다. 환경 설정은 다음 형식을 취합니다.

      name = value

그래서 그건정확히크론 작업에 대한 환경 변수를 설정하는 방법.


/etc/profile또한 이것이 시스템 전체 설정인 경우(귀하 의 참조 내용을 고려하면 그럴 것으로 추측됩니다.)

pam_envDebian GNU/Linux 시스템에서 cron은 이 모듈을 지원하고 지정된 환경 으로 로드합니다 . 또한 로케일 정보를 읽습니다./etc/environment/etc/security/pam_env.conf/etc/default/locale

/etc/profilecron 구성이 유사한 경우 기본값을 에서 으로 변경하는 것이 합리적일 수 있습니다 /etc/environment.

관련 정보