Add script to send info to zabbix

This commit is contained in:
SemvdHoeven
2026-07-24 10:19:00 +02:00
parent 8edcab8d11
commit 4948114cfc
2 changed files with 54 additions and 3 deletions

View File

@@ -0,0 +1,27 @@
#!/bin/bash
if [ $# -eq 0 ]
then
echo "No argument supplied. Use this script with:"
echo "send-zabbix-backup-info.sh <servicename> <duration_ms> <files_created> <bytes_sent> <end_date>"
exit 0
fi
SERVICE_NAME=$1
DURATION_MS=$2
FILES_CREATED=$3
BYTES_SENT=$4
END_DATE=$5
if ! command -v zabbix_sender >/dev/null 2>&1
then
echo "zabbix_sender could not be found. Is the package zabbix-sender installed?"
exit 1
fi
echo " == Sending backup information to zabbix"
# send completed
zabbix_sender -s "$(hostname)" -k "backup.status[$SERVICE_NAME] -o 1"
zabbix_sender -s "$(hostname)" -k "backup.duration[$SERVICE_NAME] -o $DURATION_MS"
zabbix_sender -s "$(hostname)" -k "backup.files[$SERVICE_NAME] -o $FILES_CREATED"
zabbix_sender -s "$(hostname)" -k "backup.bytes[$SERVICE_NAME] -o $BYTES_SENT"
zabbix_sender -s "$(hostname)" -k "backup.date[$SERVICE_NAME] -o '$END_DATE'"

View File

@@ -5,7 +5,8 @@
if [ $# -eq 0 ]
then
echo "No argument supplied. Use this script with:"
echo "tar-and-backup-service.sh <servicename> <foldername>"
echo "tar-and-backup-service.sh <servicename> <foldername> [-z]"
echo "Use the -z flag to also send information about the backup to zabbix"
exit 0
fi
@@ -13,10 +14,33 @@ SERVICE_NAME=$1
BACKUP_FOLDER=$2
TAR_FILE=$SERVICE_NAME.tar.gz
START_MS=$(date +%s%3N)
echo " == Backing up $SERVICE_NAME to $TAR_FILE"
echo " == Creating tar.gz file"
tar czvf $TAR_FILE $BACKUP_FOLDER
echo " == transfering tar file"
rsync -avz --stats --progress $TAR_FILE sem@10.10.100.52:/home/sem/$SERVICE_NAME/
TMPFILE=$(mktemp)
rsync -avz --stats --progress $TAR_FILE sem@10.10.100.52:/home/sem/$SERVICE_NAME/ | tee "$TMPFILE"
RSYNC_OUTPUT="$(cat $TMPFILE)"
rm "$TMPFILE"
echo " == Removing local tar file"
rm $TAR_FILE
rm $TAR_FILE
BYTES_SENT=$(echo "$RSYNC_OUTPUT" | grep "Total transferred file size" | cut -d: -f2 | cut -d' ' -f2 | tr -d ' ' | tr -d ',')
FILES_CREATED=$(echo "$RSYNC_OUTPUT" | grep "Number of regular files transferred" | cut -d: -f2 | tr -d ' ')
END_MS=$(date +%s%3N)
DURATION_MS=$((END_MS - START_MS))
END_DATE=$(date "+%d-%m-%Y %H:%M:%S")
echo " == Backup completed in $DURATION_MS ms"
echo " == Total bytes sent: $BYTES_SENT"
echo " == Total files created: $FILES_CREATED"
if [ "$3" == "-z" ]
then
./zabbix/send-zabbix-backup-info.sh $SERVICE_NAME $DURATION_MS $FILES_CREATED $BYTES_SENT "$END_DATE"
fi