실행될 때 로그 파일에 날짜를 기록하는 쉘 스크립트가 있습니다. 스크립트를 수동으로 실행하면 올바른 출력이 파일에 기록됩니다. 그러나 이것은 자동화되어야 하며 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
나머지 줄을 이해하지 못할 것입니다.)