명령의 성공(또는 실패)을 변수에 어떻게 전달할 수 있나요?

명령의 성공(또는 실패)을 변수에 어떻게 전달할 수 있나요?

rsnapshotNAS를 백업 하려고 달려가고 있습니다 . 명령의 출력(예: 등)을 /tmp/rsnapshot_stats_hourly rsnapshot hourly로 전달합니다. rsnapshot daily다른 스크립트에서는 통계 파일의 명령/내용 결과를 기반으로 변수를 정의하고 싶습니다. 그래서 rsnapshot을 실행할 때 오류가 있는지 여부에 따라 변수 "$status"를 정의하고 싶습니다 ."success""failure"

누구든지 이 문제를 해결하도록 도와줄 수 있나요? 불행하게도 이 분야에 대한 나의 능력은 매우 낮습니다. 감사해요.

답변1

질문 댓글에 표시된 대로남자 스냅샷설명하다:

종료 값

       0  All operations completed successfully

       1  A fatal error occurred

       2  Some warnings occurred, but the backup still finished

따라서 다음과 같이 명령줄을 수정할 수 있습니다.

rsnapshot ... with_all_arguments ; [ $? == 0 ] && rm -f flag.file || touch flag.file

또는 동일:

if rsnapshot ... with_all_arguments ; then
    rm -f flag.file 
else 
    touch flag.file
fi

다른 스크립트에서 확인해보세요로고 파일존재하다.

하지만훨씬 낫다rsnapshot의 로그 옵션을 사용하고 로그 파일을 검사하십시오.

관련 정보