Files
iDS-piBackup/pibackup.sh
2022-10-08 16:40:35 -05:00

78 lines
2.1 KiB
Bash
Executable File

#!/bin/bash
TEST=true;
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..."
#mount.cifs ${ServerName} ${MountPoint} -o user=${UserName},password=${Password}
until [ $c > 59 ]; do
if [ -f ${MountPoint}/mounted ]; then
echo "$(date) - Backup Drive mounted"
c=100
else
c=`expr $c + 1`
sleep 1s
fi
done
if [ $c != 100 ]; 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) - 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