나는 수년 동안 cron을 사용해 왔습니다. 모든 환경 변수를 한 번에 로드하려면 crontab에서 얻은 전용 파일(항상 그런 것은 아니지만 일반적으로 .bashrc)에 변수를 정의합니다.
* * * * * (. /home/me/my_environment_variables.sh; my_script.sh)
불행하게도 이 트릭은 제가 최근에 마이그레이션하라는 요청을 받은 데비안 wheezy 서버에서는 작동하지 않습니다. 더 구체적으로 말하면, 발생하는 모든 일은 마치 소스 명령이 무시된 것과 같습니다. my_script.sh가 실행되지만 환경 변수가 비어 있으므로 스크립트 결과가 예상한 결과가 아닙니다. 나는 이 질문을 정말로 이해하지 못한다. 내 우분투에서는 모든 것이 완벽하게 실행됩니다
설치된 cron 패키지는 "3.0pl1-124"입니다.
이 문제를 해결하거나 우회하는 방법을 알고 있습니까?
추신: 환경 변수를 이런 방식으로 정의하면 효과가 있는 것 같습니다.
* * * * * (export OPTOS_HOME=/home/me/src/optos; my_script.sh)
하지만 이렇게 여러 개의 환경변수를 정의하는 것은 불편합니다.
답변1
.
내부 쉘 명령입니다. cron이 사용하는 쉘을 확인하십시오(기본값은 /bin/sh).
또 다른 해결책은 래퍼 스크립트를 만들고 그 안에 이러한 명령을 넣는 것입니다. 확실히 효과가 있을 거예요.