2014-11-25 2 views
0

업무 시간 중 월요일부터 금요일까지 매분마다 쉘 스크립트를 실행하고 "crontab -l"명령을 사용할 때 볼 수 있으므로 제대로 실행되고 있다고 생각했습니다. . 이 스크립트는 postgresql 테이블의 특정 조건을 검사하는 Java 코드를 호출하고 이러한 조건이 충족되면 다른 테이블에 기록합니다. 스크립트는 Linux 서버의 다음 디렉토리에 있습니다. 그것은 8 사이 금요일까지 월요일부터 매일 매 순간을 실행해야합니다리눅스 환경에서 Cron 작업이 작동하지 않음

* 08-18 * * 1-5 /var/lib/tomcat7/webapps/sh/test.sh 

예 :

/var/lib/tomcat7/webapps/sh 

그래서 내 cronjob를이 같이해야한다, 그것은 "test.sh"라고 말할 수 오전 오후 18시 59 분. 방금 postgresql 테이블에 더미 데이터를 추가하여 테스트를 시도 했으므로 다른 테이블에 기록해야하고 아무 일도 일어나지 않아야합니다. 그러나 명령 줄에서 ./test.sh를 수동으로 실행하면 정상적으로 작동합니다. 문제는 내 크론과 함께있는 것 같습니다. 입력 한 경우 :

grep CRON /var/log/syslog 

나는 그것이 매분마다 실행되었음을 알 수 있습니다. 출력은 내가이 어떤 영향을 미칠 것 같지 않은 PostgreSQL의 테이블의 데이터를 변경 그러나 이후 등등이

Nov 25 12:38:01 webserver CRON[11868]: (ubuntu) CMD (/var/lib/tomcat7/webapps/sh/test.sh) 
Nov 25 12:39:01 webserver CRON[11888]: (ubuntu) CMD (/var/lib/tomcat7/webapps/sh/test.sh) 
Nov 25 12:40:01 webserver CRON[11953]: (ubuntu) CMD (/var/lib/tomcat7/webapps/sh/test.sh) 
Nov 25 12:41:01 webserver CRON[11953]: (ubuntu) CMD (/var/lib/tomcat7/webapps/sh/test.sh) 
Nov 25 12:42:01 webserver CRON[11985]: (ubuntu) CMD (/var/lib/tomcat7/webapps/sh/test.sh) 

것 같습니다. 마치 스크립트가 실제로 실행되지 않는 것입니다. 그것은 명령 행에서 수동으로 실행할 때 완벽하게 실행되지만. 누구나 cron 작업과 관련하여 이런 종류의 일을 경험 한 적이 있습니까? 아니면 이것이 일어날 수있는 이유에 대한 조언이 있습니까? 어떤 도움을 주시면 감사하겠습니다. 미리 감사드립니다!

+1

스크립트에 상대 경로가있을 수 있습니다.'/ var/lib/tomcat7/webapps/sh/test.sh'를 실행 해보십시오. 작동합니까? – Duffydake

+0

안녕 Duffydake. 당신의 권리, 내가 실행하려고하는 스크립트에 상대 경로가 있습니다. 스크립트는 내 Java 코드가있는 디렉토리로 이동하여 시작합니다. – tasslebear

+0

죄송합니다. 첫 번째 행은 "cd ../java/JProject/src"라고 읽은 다음 나머지 스크립트에서 java를 컴파일하고 실행합니다. 이것이 cron에서 실행되지 않는 이유 일 수 있습니까? – tasslebear

답변

0

작업 디렉토리는 당신이 pwd 명령으로 현재 작업 디렉토리를 가져 오거나 스크립트 위치 (참조를 얻을 수 있습니다 /var/lib/tomcat7/webapps/sh/test.sh

으로 스크립트를 실행 /var/lib/tomcat7/webapps/sh하지만 /없는 다음이 post과 :

cd $SCRIPTPATH 
cd ../java/JProject/sr 

또는

변경 상대 경로 ../java/JProject/src 절대 경로

관련 문제