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
그림과 같이 cron 스크립트를 작성하고 cronjob 실행 상태를 백업 로그 파일에 넣습니다. 명령문에는 자체 변수가 있으므로 이 $?
변수는 언급되지 않습니다 .if