
AWS에서 자동화된 EBS 백업을 실행하는 bash 스크립트를 만들었습니다. cronjob을 통해 시작됩니다.
0 2 * * * /bin/bash /root/backup_snapshots.sh > backup.log 2>&1
이것은 완벽하게 작동하지만 다음으로 하고 싶은 일은 스크립트가 성공적으로 실행되는지 여부에 대한 종료 코드를 추가하는 것입니다(그래서 Nagios 검사를 구성할 수 있습니다). 제가 할 일이 몇 가지 있습니다:
- /var/log/backup/ 디렉터리에 backup.log를 생성합니다.
- 이 검사를 더 쉽게 감지할 수 있도록 logrotate를 매일 회전하도록 구성하세요.
하지만 제가 가지고 있는 한 가지 질문은 cron이 제가 만든 backup.log 파일에 종료 코드를 쓰도록 할 수 있다는 것입니다. 아니면 이런 유형의 구현을 사용해야 합니까?
실제 스크립트를 시작할 수 있고 다음과 같은 종료 코드를 포함하는 스크립트를 사용하여 crontab 항목을 만듭니다.
#!/bin/bash
/root/backup_snapshots.sh 2> /dev/null
if [ $? -eq 0 ]
then
echo "PASS"
else
echo "FAIL" >&2
fi
나는 이것을 가능한 한 간단하게 만들고 싶기 때문에 cron이 그것을 할 수 있다면 굉장합니다! 그렇지 않다면 차선책은 backup_snapshots.sh를 실행하고 cron을 통해 실행하는 bash 스크립트를 만드는 것입니까?
답변1
#!/bin/bash
exec 1>/var/log/backup/backup_sbapshots.log 2>&1
if /root/backup_snapshots.sh
then
echo "PASS"
else
echo "FAIL"
fi
백업 로그 파일에 cronjob 실행 상태를 저장하는 cron 스크립트를 다음과 같이 만듭니다. 명령문이 자체 변수를 소유하므로 $?
변수 에 대한 언급은 어디에도 없습니다 .if