BackupPC通知シェルスクリプトが機能しません。

BackupPC通知シェルスクリプトが機能しません。

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_

おすすめ記事