2010-08-04 3 views
0

보고서를 실행하고 사용자의 ~/.bashrc 파일에 정의 된 주소로 결과를 전자 메일로 보내는 크론 작업을 작성하려고합니다. Fedora에서 완벽하게 작동하지만 우분투로 전환하면 내 솔루션이 더 이상 작동하지 않습니다. 내가 수동으로 명령을 실행하거나 그놈 일정을 통해 그것을 시작하는 경우가 완벽하게 작동,사용자 데이터에 액세스 할 수있는 크론 작업 작성

. /home/myuser/.bashrc; /home/myuser/bin/runreport 

하지만, 실행하는 것 결코 내 크론 작업이 현재 실행되는 명령입니다. 우분투가 실행을 막는 특정 문제가 있습니까?/시스템 로그

0 8 * * * . /home/myuser/.bashrc; /home/myuser/bin/runreport # JOB_ID_1 

그렙 -i 크론은/var의 출력/로그 : -l crontab을의

출력 /home/myuser/bin/runreport 스크립트가

Aug 4 08:00:00 localhost CRON[23234]: (myuser) CMD (. /home/myuser/.bashrc; /home/myuser/bin/runreport # JOB_ID_1) 
+2

실행중인 명령이 맞습니까? 설명에서 당신은 .bashrc에서 물건을 정의한다고 말하지만 명령에서 .bash_rc를 불러들입니다. – speshak

+1

bash_rc가 vars를 내 보냅니 까? grep -i cron/var/log/syslog는 무엇을 보여줍니까? – Doon

+1

이 명령의 crontab 항목을 게시 할 수 있습니까? – invert

답변

3

경우에 다음 두 줄을 추가 상단 :

012 :

env 
set -x 

하고에 crontab 줄을 변경

. /home/myuser/.bashrc ; /home/myuser/bin/runreport >/tmp/qq 2>&1 

그런 다음 실행하면 /tmp/qq 파일에 모든 환경 변수와 실행 된 명령이 있어야합니다.

이 스크립트가 아니란 경우 스크립트를 호출하고 스크립트를 호출하여 env 줄을 추가하십시오. 적어도 실행중인 환경을 제공 할 것입니다.

+0

"runreport"는 실제로는 #!/usr/bin/python을 맨 위에 둔 파이썬 스크립트입니다. . 파이썬에 상응하는 라인이 있습니까? – Cerin

+0

.bashrc 대신 .bash_aliases를 소싱하여 환경 문제를 이미 해결했습니다. 그러나 "2> & 1"오류가 수정 된 것처럼 보입니다. 감사. – Cerin

+0

@Chris,'runsport'를 실행하기 직전에'os.system ("env")'또는'env> tmp/qq.env'를 cron 명령에 넣으면 환경을 얻을 수 있습니다. 라인 당 디버깅은 더 어렵습니다. 스크립트에 디버그'print' 문을 추가하는 것이 더 쉽습니다. 다행히 파이프 문제에 도움을 줄 수 있습니다. 건배. – paxdiablo

관련 문제