72 lines
2.1 KiB
Bash
Executable File
72 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}"
|
|
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"
|
|
if [ TEST != true ]; then dd if=${dtype} of=${BackupDir}/$(date +%Y-%m-%d).img bs=1M status=progress; fi;
|
|
echo "$(date) - Backup Complete"
|
|
if [ TEST != true ]; then sleep 1m; fi;
|
|
echo "$(date) - Starting PiShrink"
|
|
if [ TEST != true ]; then source /opt/idssys/pibackup/pishrink.sh -az ${BackupDir}/$(date +%Y-%m-%d).img; fi;
|
|
|
|
echo "$(date) - PiShrink complete"
|
|
if [ TEST != true ]; then sleep 1m; fi;
|
|
|
|
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"
|
|
#if [ TEST != true ]; then rm -rf $i; fi;
|
|
else
|
|
echo "$(date) - KEEPING : $i"
|
|
fi
|
|
done
|
|
echo "$(date) - Completed"
|
|
#umount ${MountPoint}
|
|
fi
|
|
|
|
exit 0
|
|
|
|
|