RSS Git Download  Clone
Raw Blame History
#!/bin/bash

# mysqldump exifdata db, compare md5sum to most recently changed file, save with date-stamp if
# different & transfer as exifdata_zbox.sql.gz to backup Pi

# 0 7 * * * { printf "\%s " "$(date "+\%F \%T")";
#   /home/raj/script/exifdata/.mysql_backup; } >> /home/raj/cron.log 2>&1

# YESTERDAY=$(date -d "yesterday 12:00" "+%Y-%m-%d") - don't need this any more
# echo $YESTERDAY

TODAY=$(date +"%Y-%m-%d")
# echo $TODAY

# new sql backup filename:
OUTPUT_NAME=exifdata_${TODAY}.sql
ARCHIVE_NAME=exifdata_zbox.sql.gz
# echo $OUTPUT_NAME

# md5sum of most recent change:
MD5SUMFILE=md5sum.txt

ARCHIVEPATH=/home/raj/scripts/exifdata/datafiles/mysql/
cd $ARCHIVEPATH

# skip dump-date as inclusion causes md5sum to change even if data is identical
mysqldump --defaults-file=/home/raj/.local/mysql.cnf --skip-dump-date exif_data > $OUTPUT_NAME

NEW_MD5="$(md5sum $OUTPUT_NAME | awk '{print $1}')"
# echo $NEW_MD5

PREVIOUS_MD5=`cat $MD5SUMFILE`
# echo $PREVIOUS_MD5

BACKUPHOST=192.168.1.125
BACKUPDIR=/mnt/backup/volvox/

if [ $NEW_MD5 != $PREVIOUS_MD5 ]; then
  gzip $OUTPUT_NAME
  # save new md5 to file:
  echo $NEW_MD5 > $MD5SUMFILE
  # transfer file to $BACKUPHOST, renamed as $ARCHIVE_NAME:
  scp $ARCHIVEPATH/${OUTPUT_NAME}.gz raj@$BACKUPHOST:$BACKUPDIR/$ARCHIVE_NAME
  echo "Backup saved"
else
  echo "No difference, cleaning up"
  rm $OUTPUT_NAME
fi

exit 0

# problem is that extraction filename difference causes md5sum to change eg:
# diff <(zcat rwgps_2019-01-26.sql.gz) <(zcat rwgps_2019-01-25.sql.gz)