Files
iDS-piBackup/pibackup.sh
2022-10-08 16:26:24 -05:00

72 lines
2.1 KiB
Bash
Executable File

#!/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