#!/bin/bash TEST=false; if [ "$1" != "update" ]; then source /opt/idssys/defaults/colors.inc source /opt/idssys/defaults/default.inc source /opt/idssys/pibackup/settings.inc BackupDir="${MountPoint}/${hostname}" logfile=/opt/idssys/pibackup/logfile echo echo '----------------------------------------------------------------------------------------------------' echo "$(date) - NEW BACKUP" echo '----------------------------------------------------------------------------------------------------' if grep '/dev/nvme0n1' /etc/mtab > /dev/null 2>&1; then dtype=/dev/nvme0n1 elif grep '/dev/mmcblk0' /etc/mtab > /dev/null 2>&1; then dtype=/dev/mmcblk0 fi echo "$(date) - Checking for mounted Backup Drive..." if [ ! -f ${MountPoint}/mounted ]; then echo "$(date) - Not found, mounting drive now..." if [ "${ServerName}" != "" ]; then mount.cifs ${ServerName} ${MountPoint} -o user=${UserName},password=${Password} else mount -a fi c=0 until [ $c -gt 179 ]; do if [ -f ${MountPoint}/mounted ]; then echo "$(date) - Backup Drive mounted" c=10000 else ((c++)) sleep 1s fi done if [ $c != 10000 ]; then echo "$(date) - Backup Drive COULD NOT be mounted... exiting" exit 1 fi else echo "$(date) - Backup Drive already mounted" fi [ ! -d "$BackupDir" ] && mkdir -p "$BackupDir" echo "$(date) - Starting Backup" [ $TEST != true ] && dd if=${dtype} of=${BackupDir}/$(date +%Y-%m-%d).img bs=1M status=progress echo "$(date) - Backup Complete" [ $TEST != true ] && sleep 1m echo "$(date) - Removing old backups..." allfiles=`ls -1 ${BackupDir}/*.img*` if [ "${BackupsToKeep}" == "" ]; then BackupsToKeep=3 fi files=(`ls -1 ${BackupDir}/*.img* | tail -${BackupsToKeep}`) for i in $allfiles; do keep=0; for a in ${files[@]}; do if [ $i == $a ]; then keep=1; fi; done; if [ $keep == 0 ]; then echo "$(date) - REMOVING : $i" [ $TEST != true ] && rm -rf $i else echo "$(date) - KEEPING : $i" fi done echo "$(date) - Completed" #umount ${MountPoint} echo "$(date) - Starting PiShrink on backup repository server" remotePath="/mnt/BU-Raid1/RaspPi-Backups/${hostname}" [ $TEST != true ] && ssh root@10.10.1.62 /opt/pishrink.sh -az ${remotePath}/$(date +%Y-%m-%d).img & # [ $TEST != true ] && source /opt/idssys/pibackup/pishrink.sh -az ${BackupDir}/$(date +%Y-%m-%d).img # echo "$(date) - PiShrink complete" # [ $TEST != true ] && sleep 1m fi exit 0