
출력을 기록하려는 cron 작업이 있습니다. 크론 파일( crontab -e
)은 다음과 같습니다.
0 7 * * * node $HOME/server/task.js >> $HOME/server/log.txt
cron 작업은 다음과 같이 호출됩니다.
$ grep CRON /var/log/syslog
Nov 4 07:00:01 ip-... CRON[0000]: (bitnami) CMD (node $HOME/server/task.js >> $HOME/server/task.txt)
Nov 4 07:00:01 ip-... CRON[0000]: (CRON) info (No MTA installed, discarding output)
오류가 있는 줄은 내가이메일이 설치되지 않았습니다, 하지만 나도 그러고 싶지 않아요.
NodeJS 작업의 첫 번째 줄에서 console.log()
.
cron 작업이 실행되지 않는 것을 확인합니다.
무엇이 잘못되었는지 디버깅하고, cron을 실행하고, 결과를 파일에 저장하려면 어떻게 해야 합니까?
답변1
기본적으로 cron 작업의 출력은 스크립트를 실행하는 사용자에게 메일로 전송됩니다.MTA가 설치되지 않았습니다.시스템에 메일링 에이전트가 설치되어 있지 않기 때문입니다.
첫 번째 syslog 줄에 표시된 대로 스크립트가 실제로 실행되고 있습니다. 여기서 문제는 표준 출력으로 리디렉션되지 않는 출력 내에 있습니다.
따라서 cron 작업을 편집해 보십시오.
0 7 * * * node $HOME/server/task.js >> $HOME/server/log.txt 2>&1