Cron 작업이 로그 파일에 기록되지 않음

Cron 작업이 로그 파일에 기록되지 않음

실행될 때 로그 파일에 날짜를 기록하는 쉘 스크립트가 있습니다. 스크립트를 수동으로 실행하면 올바른 출력이 파일에 기록됩니다. 그러나 이것은 자동화되어야 하며 cron 작업으로 실행할 때 파일에 아무 것도 기록되지 않으며 그 이유가 무엇인지 혼란스럽습니다.

예약 된 일들:

0 * * * * tomcat /usr/bin/sh /apps/rdsreplication/snap_replication.sh

샘플 코드:

#/bin/bash/

echo ---------------------------------------- >> create_snap.txt
echo Start time:  >> create_snap.txt
date >> create_snap.txt

어떤 도움이라도 대단히 감사하겠습니다!

답변1

쉘 스크립트에는 로그 파일의 전체 경로가 필요합니다.

#/bin/bash/
# assuming you want the txt file in the same directory as the bash script
logfile="$(dirname "$0")/create_snap.txt"
{
    echo ----------------------------------------
    echo Start time:
    date 
} >> "$logfile"

답변2

사용자의 경우 crontab매뉴얼 페이지에서는 crontab(5)다음 필드를 설명합니다.

각 줄에는 5개의 시간 및 날짜 필드가 있고 그 뒤에 시스템 crontab 파일인 경우 사용자 이름, 명령이 옵니다.

따라서 귀하의 경우 다음과 같은 것을 원할 것입니다.

0 * * * * /usr/bin/sh /apps/rdsreplication/snap_replication.sh

cron결과 가 이메일로 전송된다는 점을 알아야 합니다 .표준 에러cron직장에서(있는 경우) 명령을 찾을 수 없다는 이메일을 많이 받았을 것입니다 tomcat. (또는 가능하다면 tomcat나머지 줄을 이해하지 못할 것입니다.)

관련 정보