Estou usando o BackupPC e criei um script que enviará uma notificação por e-mail sempre que ocorrer um backup, seja com êxito ou com falha. Neste script, gostaria de extrair a última declaração do arquivo LOG. No entanto, meu script está ecoando uma string para o arquivo de log real no BackupPC e não sei como / por que está fazendo isso.
#!/bin/bash
# Script to send email notification when BackupPC has performed a backup
sleep 30
# Email To ?
EMAIL="[email protected]"
# Email text/message
EMAILMESSAGE="/var/lib/backuppc/emailmessage.txt"
DATE=$(date +%m%Y)
#Grab the status variables
xferOK=$1
host=$2
type=$3
client=$4
hostIP=$5
share=$6
XferMethod=$7
sshPath=$8
cmdType=$9
#Extract the last line of the log for error reporting
LOG_FILE="/var/lib/backuppc/pc/$host/LOG.$DATE"
# Check if backup succeeded or not.
if [[ $xferOK == 1 ]]; then
STATUS="has been SUCCESSFUL"
# Email text/message
echo "$client backup $STATUS" > $EMAILMESSAGE
echo "------------------------------------------------" >>$EMAILMESSAGE
echo "Retrieving the last statement from $host LOG file..."
tail -n 2 "$LOG_FILE" >>$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
/usr/sbin/sendmail "$EMAIL" < $EMAILMESSAGE
else
STATUS="has FAILED"
#If it had failed, send out the error report
# Email text/message
echo "$client backup $STATUS" > $EMAILMESSAGE
echo "---------------------------------" >>$EMAILMESSAGE
echo "Retrieving the last statement from $host LOG file..."
tail -n 2 "$LOG_FILE" >>$EMAILMESSAGE
# send an email using sendmail
/usr/sbin/sendmail "$EMAIL" < $EMAILMESSAGE
fi
E aqui está o meu email que recebi:
uklamp01 backup has been SUCCESSFUL
------------------------------------------------
2017-08-25 08:52:31 incr backup started back to 2017-08-15 09:45:02 (backup #0) for directory /
2017-08-25 09:08:41 Output from DumpPostUserCmd: Retrieving the last statement from uklamp01 LOG file...
------------------------------------------------
Type: incr
Client: uklamp01
Host: uklamp01
Host IP: uklamp01
Share: /
XferMethod: rsync
sshPath: /usr/bin/ssh
cmdType: DumpPostUserCmd
E aqui está o arquivo LOG da GUI do BackupcPC:
Comoéumastring("Recuperando o ... etc") do meu script no arquivo LOG real no BackupPC? E existe uma maneira de resolver isso, por favor?
Tags backup bash linux scripting shell-script