조건 절에 두 개의 종료가 있는 스크립트가 5분마다 실행됩니다.
#!/bin/bash
date=$(date +%Y)
if [ $date -eq '2014' ]
then
echo "Current year is $date"
exit 0
else
echo "Current year is not $date"
exit 2
fi
2번 종료 시에만 로그를 쓰도록 어떻게 지정할 수 있나요? crontab에서 이것이 가능할까요?
5 * * * * /home/user/script.sh >> script.log 2>> script.err
나는 그것을 이해했다 " >> 스크립트.로그 "스크립트의 모든 반환을 작성하고" 2 >> script.err "스크립트가 올바르게 실행되지 않은 경우에만 씁니다. 그래서 스크립트 아래 2번 출구에만 쓸 기회가 있는지 모르겠습니다.
답변1
stderr
리디렉션 을 사용하기 위해 오류를 작성하려면 1>&2
:
echo "Current year is not $date" 1>&2
exit [number]
은(는) 반환 코드를 지정합니다 [number]
.
또한보십시오:
답변2
에서 실행 중이므로 logger
( )를 사용할 수 있습니다 . 그리고 최소한 위의 코드에서는 종료 코드로 아무 작업도 수행하지 않기 때문에 종료 코드가 실제로 필요하지 않습니다.man logger
cron
#!/bin/bash
DATE=$(date +%Y)
if [ $DATE -ne '2014' ]; then
logger -f script.log "Current year is not $date"
fi