백업 스크립트가 중단됩니다.

백업 스크립트가 중단됩니다.

cron 작업으로 실행되고 /var/log/messages/의 일일 백업을 생성하는 백업 스크립트가 있습니다. 이 스크립트는 실제 적용보다는 학습 경험에 더 가깝습니다. tar 명령 실행 후 종료 코드를 확인하기 위해 if/else 문을 추가했습니다. 이전에는 스크립트가 제대로 작동했지만 이 기능을 추가한 후에는 작동이 중단되었습니다. 코드는 아래와 같이 표시됩니다.

#!/bin/bash

admin="[email protected]"
of=messages-backup-$(date +%Y%m%d).tgz

cd /var/log/

tar -czvf $of messages

if [ $? -eq 0 ]; then
  mail -s "Backup of /var/log/messages was successful!" $admin
  exit 0
else
  mail -s "Backup of /var/log/messages has failed!" $admin
  exit 1
fi

cp $of /home/user/
rm -rf $of

산출:

[root@nidesant2 Scripts]# ./backup.sh 
messages
^C
(Interrupt -- one more to kill letter)

답변1

변화

mail -s "Backup of /var/log/messages was successful!" $admin

도착하다

echo hello | mail -s "Backup of /var/log/messages was successful!" $admin

또는

mail -s "Backup of /var/log/messages was successful!" $admin < /dev/null

첫 번째 옵션은 원하는 텍스트를 메시지 본문으로 사용할 수 있습니다. 두 번째 옵션은 메시지 본문이 비어 있는 이메일을 보냅니다. 백업이 실패하면 두 번째 email 명령에 대해 동일한 변경을 반복하십시오.

학습을 위해서는 tar 파일의 생성, 복사, 삭제가 성공적으로 완료되었는지 확인하고 성공 여부를 판단해야 합니다. 이렇게 하려면 이렇게 하면 됩니다.

변화

tar -czvf $of messages

도착하다

tar -czvf $of messages && cp $of /home/user/ && rm -rf $of

또한 이 변경을 통해 cp $of /home/user/스크립트 끝에서 및 를 제거할 수 있습니다.rm -rf $of

그러면 if/else는 세 가지 명령이 모두 성공적으로 완료되었거나 해당 문자열의 세 명령 중 하나라도 실패했을 때 실행됩니다.

관련 정보