Crontab 구문; 여러 명령

Crontab 구문; 여러 명령

cronjob으로 다음 명령 체인을 얻고 싶습니다.

* * * * * source activate myenv3 && cd ~/foo/bar && python sssb.py

콘솔에서는 작동하지만 cronjob에서는 어떤 출력도 얻지 못합니다.

나는 팔로우했다이것제안을 다음으로 대체하여

* * * * * env > /tmp/env.output

env가 다른지 확인합니다. PATH가 다른 것 외에는 관련성을 찾을 수 없습니다. 그래서 나는 설정했다.

PATH=myPath
* * * * * source activate myenv3 && cd ~/foo/bar && python sssb.py

그래도 여전히 작동하지 않았습니다. 결국 나는 그것을 대체했다

PATH=myPath
* * * * * source activate myenv3 && cd ~/foo/bar && python sssb.py
* * * * * env > /tmp/env.output

그런데 이번에는 파일도 못 받았어요 env.output. 따라서 내 구문에 문제가 있다고 생각합니다. 하지만 온라인에서 찾은 다중 명령 제안과 똑같아 보입니다.

여기서 무슨 일이 일어나고 있는 걸까요? 명확하지 않은 경우 오류를 추적하려면 다음으로 무엇을 해야 합니까?

PATH=/usr/local/anaconda2/envs/myenv3/bin:~/.conda:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games

out.err:

/bin/sh: 6: /usr/local/anaconda2/envs/myenv3/bin/activate: [[: not found
/bin/sh: 15: /usr/local/anaconda2/envs/myenv3/bin/activate: [[: not found
/bin/sh: 17: /usr/local/anaconda2/envs/myenv3/bin/activate: [[: not found
Only bash and zsh are supported

답변1

우분투에서는 기본적으로 데몬이 ( ) 쉘을 cron사용하여 모든 작업을 실행하며 내장 되어 있지 않습니다 .shdashdashsource

POSIX 방식을 사용해야 합니다. 즉 .:

* * * * * . activate myenv3 && cd ~/foo/bar && python sssb.py

또는 다음 인수로 작업을 실행할 수 있습니다 bash.

* * * * * "$(command -v bash)" -c 'source activate myenv3 && cd ~/foo/bar && python sssb.py'

관련 정보