저는 simpleWorld Java 프로그램을 작성하고 해당 jar 파일을 만들었습니다.
이제 cron 작업을 테스트하려면 다음 줄을 포함하는 crontab.txt 파일을 작성하세요.
50 12 27 4 1 java -jar HelloWorld.jar
그리고 그것을 저장했습니다.
유닉스 머신의 명령 프롬프트에서 나는 다음과 같이 썼다:
crontab crontab.txt
내 유닉스 컴퓨터에서는 이 프로그램의 결과를 볼 수 없습니다. SysOut 라인 "Hello World"를 얻는 방법.
즉, 성공적으로 실행되었는지 어떻게 알 수 있습니까?
답변1
가장 좋은("올바른") 방법은 출력을 리디렉션하도록 crontab에서 명령을 수정하는 것입니다.
50 12 27 4 1 java -jar HelloWorld.jar >> HelloWorld.output 2>&1
그러나 일반적으로 cron 작업이 리디렉션되지 않은 출력을 생성하면
cron
해당 출력이 캡처되어 사용자에게 메일로 전송됩니다. 입력해 mail
보고 결과를 확인하세요. (컴퓨터에 다른 메일 시스템이 있는 경우 이를 사용할 수 있습니다.)
답변2
cron 작업에서 출력이 생성되면 cron은 로컬 이메일 기능을 통해 이를 사용자에게 보냅니다. cron 작업이 0이 아닌(즉, 오류) 상태를 반환하는 경우 cron은 상황에 대한 이메일을 보냅니다. 크론 작업이 출력 없이 완료되었고 상태가 0(즉, 성공)인지, 아니면 여전히 실행 중인지 확인할 수 있는 신뢰할 수 있는 방법은 없습니다.
일부 배포판에는 기본 설치에 로컬 이메일 기능이 설정되어 있지 않습니다. 일반적으로 이 작업을 수행하는 것은 쉽습니다. 다음 중 하나를 설치하면 됩니다.MTAPostfix 또는 Exim과 같은 패키지 구성 방법을 물으면 "로컬 배송 전용" 또는 유사한 옵션을 선택하십시오. 이메일을 로컬로 전달하는 대신 SMTP를 통해 원격 서버로 보내고 싶다면,이에 대한 최소한의 MTA가 있습니다..
이메일 외에도 명령줄에서 리디렉션을 사용하여 작업을 파일로 출력하도록 예약할 수도 있습니다.
50 12 27 4 1 java -jar HelloWorld.jar >~/log/HelloWorld-$(date -d \%Y\%m\%d-\%H\%M\%S).log 2>&1