2012-07-18 5 views
1

내 cronjob이 실행되지 않는 이유를 모르겠습니다. 여기에 세부 사항이 있습니다 :데비안에서 Cronjob이 작동하지 않습니다.

jar 파일을 실행하는 stundenplan.sh라는/usr/src 안에 스크립트가 있습니다. 콘솔에서 스크립트를 실행하는 경우 스크립트 자체가 작동합니다. 하지만 cronjob에서 실행하려고하면 작동하지 않습니다.

스크립트는 다음과 같습니다 : 예상대로

#!/bin/sh 
java -jar vorlesungsplaene.jar 

JAR 파일이 같은 디렉토리에있다.

나는 두 cronjobs 정의 : 아래는 test.txt 파일에 꼼꼼하게 "친구"를 작성, 잘 작동

# m h dom mon dow command 
    30 * * * * /usr/src/stundenplan.sh 
0-59 * * * * echo "dude" >> /tmp/test.txt 

작업. 당신은 시스템 로그에서 볼 수 있듯이

작업은 위의 실패

Jul 18 15:29:01 vps47327 /USR/SBIN/CRON[16361]: (root) CMD (echo "dude" >> /tmp/test.txt) 
Jul 18 15:30:01 vps47327 /USR/SBIN/CRON[16364]: (root) CMD (/usr/src/stundenplan.sh) 
Jul 18 15:30:01 vps47327 /USR/SBIN/CRON[16365]: (root) CMD (echo "dude" >> /tmp/test.txt) 
Jul 18 15:30:01 vps47327 /USR/SBIN/CRON[16363]: (CRON) error (grandchild #16364 failed with exit status 1) 

어떤 제안, 아이디어 나 솔루션을? ;)

+0

아마 경로에 java가 없습니다. (또는 다른 환경 변수가 누락되었습니다). 명백히 instundenplan.sh 필요한 모든 것을 설정하십시오. (아마도 .profile이나 다른 점 파일을 소싱하여) stundenplan.sh에'set >>/tmp/test.txt'를 넣어 환경을 테스트 할 수 있습니다. BTW는 stundanplan.sh 실행 파일입니까? (chmod 755 stundenplan.sh) – wildplasser

답변

5

경로 문제처럼 보입니다. Crontab은 아마도 임의의 디렉토리에서 실행되어 jar 파일을 찾을 수 없습니다. 일을

시도 :

30 * * * * cd /usr/src && ./stundenplan.sh

정말 그것에 대해 갈 수있는 예쁜 방법은 아니지만, 그것을 작동하는 경우, 다음 적어도 당신은 문제가 무엇인지 알고있다. 아마도 jar 파일의 전체 경로를 스크립트에 넣는 것이 더 좋을지 모르지만 그 질문은 여러분에게 남겨 둘 것입니다. :)

희망이 있습니다.

+0

이것은 실제로 효과가 있습니다. 감사! –

+0

PATH 변수에 디렉토리를 포함하려고 시도했지만 작동하지 않았습니다. 그러나 당신의 솔루션은 완벽하게 작동했습니다 ... – sri

+1

@sri 그렇다면 stundenplan.sh 스크립트가 자신의 디렉토리에서 실행 중이라고 가정하여 파일에 액세스하는 것 같습니다. 완전한 세계에서 스크립트는 그렇게하지 않을 것이지만, 특히 쉘 스크립트의 경우에는 매우 일반적입니다. – Teekin

관련 문제