#!/bin/bash # script to tar a folder and rsync it to backup server if [ $# -eq 0 ] then echo "No argument supplied. Use this script with:" echo "tar-and-backup-service.sh [-z]" echo "Use the -z flag to also send information about the backup to zabbix" exit 0 fi 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" 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 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 ./send-zabbix-backup-info.sh $SERVICE_NAME $DURATION_MS $FILES_CREATED $BYTES_SENT "$END_DATE" fi