종료 2를 반환하는 if 조건의 잘못된 문에 대한 로그 작성

종료 2를 반환하는 if 조건의 잘못된 문에 대한 로그 작성

조건 절에 두 개의 종료가 있는 스크립트가 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 loggercron

#!/bin/bash
DATE=$(date +%Y)
if [ $DATE -ne '2014' ]; then
    logger -f script.log "Current year is not $date"
fi

관련 정보