84 lines
2.2 KiB
Bash
Executable File
84 lines
2.2 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}"
|
|
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}
|
|
mount -a
|
|
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) - 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`
|
|
|
|
if [ "${BackupsToKeep}" == "" ]; then
|
|
BackupsToKeep=3
|
|
fi
|
|
|
|
files=(`ls -1 ${BackupDir}/*.img.gz | 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}
|
|
fi
|
|
|
|
exit 0
|
|
|
|
|