46 lines
1.4 KiB
Bash
Executable File
46 lines
1.4 KiB
Bash
Executable File
#!/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 <servicename> <foldername> [-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
|
|
./zabbix/send-zabbix-backup-info.sh $SERVICE_NAME $DURATION_MS $FILES_CREATED $BYTES_SENT "$END_DATE"
|
|
fi |