#!/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}" BackupDir=/mnt/veeam-backups/octopi 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..." mount.cifs ${ServerName} ${MountPoint} -o user=${UserName},password=${Password} sleep 15s if [ ! -f ${MountPoint}/mounted ]; then echo "$(date) - Backup Drive mounted" else echo "$(date) - Backup Drive COULD NOT be mounted... exiting" exit 1 fi else echo "$(date) - Backup Drive already mounted" fi #[ ! -d "$MountPoint" ] && mkdir -p "$MountPoint" [ ! -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) - Starting PiShrink" [ $TEST != true ] && source /opt/idssys/pibackup/pishrink.sh -az ${BackupDir}/$(date +%Y-%m-%d).img echo "$(date) - PiShrink complete" [ $TEST != true ] && sleep 1m echo "$(date) - Removing old backups..." allfiles=`ls -1 ${BackupDir}/*.img.gz` files=(`ls -1 ${BackupDir}/*.img.gz | tail -3`) 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} fi exit 0