~/.zshenv에 정의된 환경에서 모든 cronjob을 실행하고 각 cronjob을 단일 로그 파일 STDOUT
로 리디렉션하고 싶습니다 . STDERR
저는 OS X 10.9를 사용하고 있습니다. 이것을 달성하는 가장 깨끗한 방법은 무엇입니까?
답변1
~/.zshenv
zsh에 의해 시작 시 로드됩니다( -f
startup이나 settings를 사용하여 구성 디렉터리를 변경 하지 않는 한 ZDOTDIR
). 다른 쉘에서는 로드되지 않습니다(이해할 수 없음). 따라서 로드를 예약하는 것은 ~/.zshenv
zsh에서 실행될 작업을 예약하는 것과 같습니다. SHELL
crontab에서 변수를 설정하십시오. 이는 모든 작업에 적용됩니다.
.zshenv
모든 쉘이 그것을 읽을 것이므로 물건을 넣지 않도록 주의하십시오 . 예를 들어, 다른 환경에서 특정 프로그램을 실행하기 위해 환경 변수를 설정한 경우(예: 특정 파일이나 프로그램의 다른 버전을 원하여 일부 환경 변수를 설정한 경우) 이러한 변수를 재정의하면 …PATH
작동하지 않습니다..zshenv
특히 대화형 세션 및 cron 작업에 대한 환경 변수를 설정하려면 .zshenv
crontab 및 crontab에서 얻은 파일을 사용하지 마십시오 ~/.profile
. 모든 크론 작업을 시작합니다 . ~/.my_environment.sh;
(전역적으로 수행할 수는 없음).
cron 작업의 출력은 로컬 메일 도구를 사용하여 이메일로 전송됩니다. OSX에서 설정하는 방법을 모르겠습니다. cron은 성공적인 작업(출력 없음, 반환 코드 0)이 아닌 각 작업에 대한 이메일 전송을 담당하므로 로그 파일을 사용하지 않는 것이 좋습니다. 정말로 로그 파일을 사용하고 싶다면 exec >~/cron-logs/nameofthisjob-$(date +\%Y\%m\%d-\%H\%M) 2>&1 &&
.