종료 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>>스크립트.오류"스크립트가 올바르게 실행되지 않는 경우에만 작성됩니다. 그래서 그냥 스크립트에 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

관련 정보