Ubuntu 16.04 서버에 설치한 BackupPC를 사용하여 백업이 성공할 때마다 이메일 알림을 받고 싶습니다. BackupPC는 백업이 실패하지 않는 한 이메일을 통해 알림을 보내지 않습니다. 다음 스크립트를 실행하면 "실패했습니다"라는 이메일을 받습니다.
백업 설정에 다음을 입력했습니다.
$Conf{DumpPostUserCmd} =
/var/lib/backuppc/backuppc_notification_email.sh $xferOK $host $type
$client $hostIP $share $XferMethod $sshPath $cmdType
이것은 쉘 스크립트입니다:
#!/bin/bash
# script to send simple email
# Email To ?
EMAIL="[email protected]"
# Email text/message
EMAILMESSAGE="/var/lib/backuppc/emailmessage.txt"
# Grab the status variables
xferOK=$1
host=$2
type=$3
client=$4
hostIP=$5
share=$6
XferMethod=$7
sshPath=$8
cmdType=$9
# Check if backup succeeded or not.
if [[ $xferOK == 1 ]]; then
STATUS="has been SUCCESSFUL"
else
STATUS="has FAILED"
fi
# email subject
SUBJECT="[BackupPC] $STATUS for host: $client"
# Email text/message
echo "The filesystem backup for $host $STATUS" > $EMAILMESSAGE
echo "-----------------------------------------" >>$EMAILMESSAGE
echo "Type: $type" >>$EMAILMESSAGE
echo "Client: $client" >>$EMAILMESSAGE
echo "Host: $host" >>$EMAILMESSAGE
echo "Host IP: $hostIP" >>$EMAILMESSAGE
echo "Share: $share" >>$EMAILMESSAGE
echo "XferMethod: $XferMethod" >>$EMAILMESSAGE
echo "sshPath: $sshPath" >>$EMAILMESSAGE
echo "cmdType: $cmdType" >>$EMAILMESSAGE
# send an email using /bin/mail
/usr/sbin/sendmail -v "$EMAIL" "$SUBJECT" < $EMAILMESSAGE
내가 받은 이메일은 다음과 같습니다.
The filesystem backup for has FAILED
-----------------------------------------
Type:
Client:
Host:
Host IP:
Share:
XferMethod:
sshPath:
cmdType:
내 쉘 스크립트에 명시된 관련 정보가 이메일에 없는 이유와 "실패"라고 표시되는 이유가 무엇인지 궁금합니다.
답변1
명령을 인용하고 끝에 세미콜론을 추가해 보십시오.
$Conf{DumpPostUserCmd} = '/var/lib/backuppc/backuppc_notification_email.sh $xferOK $host $type $client $hostIP $share $XferMethod $sshPath $cmdType';
~에서컴퓨터 문서 백업:
구성 파일은 BackupPC에서 실행되는 Perl 스크립트이므로 편집 시 파일 구문(구두점, 따옴표 등)을 유지하도록 주의해야 합니다. config.pl을 변경하려면 CVS, RCS 또는 기타 소스 제어 방법을 사용하는 것이 좋습니다.
또는 다음을 사용할 수 있습니다.여기 문서이메일을 생성하려면:
cat << _EOF_ > "$EMAILMESSAGE"
The filesystem backup for $host $STATUS
-----------------------------------------
Type: $type
Client: $client
Host: $host
Host IP: $hostIP
Share: $share
XferMethod: $XferMethod
sshPath: $sshPath
cmdType: $cmdType
_EOF_