This commit is contained in:
2024-01-04 18:09:46 -06:00
parent 46bde6d296
commit d8388f56f8
2 changed files with 70 additions and 1 deletions

View File

@@ -1,5 +1,5 @@
#!/usr/bin/env bash
VERS='5.1.51-01012024'
VERS='5.1.52-01042024'
NM_BETA=false
noheader=' service status-check nightlyrephp7.3-fpm,new backup report check checkcerts gitea update-nodes copynpmcerts singleservercheck update-dyndns backup-offsitepfsense gui nightlyreview update log betacheck '

View File

@@ -565,6 +565,75 @@ BACKUP_OFFSITEPFSENSE(){
fi
}
BACKUP_UNIFIUDM(){
BAKFOLDER=/mnt/Veam-UniFi-UDM_Backups
UNIFIUDM_IP='10.5.1.1'
if [ "$(CHECK_HOST ${UNIFIUDM_IP})" != "false" ]; then
if [ ! -f ${BAKFOLDER}/mounted ]; then
mount -a
sleep 2s
if [ ! -f ${BAKFOLDER}/mounted ]; then
echo "Can't mount backup folder"
SENDNOTICE "Unifi-UDM Backup Failed" "Could not mount backup folder" 1
exit 1
fi
fi
newBAKFOLDER=$(date +%Y%m%d-%H%M%S)
mkdir ${BAKFOLDER}/${newBAKFOLDER}
DOM='01'
DOW='1'
DailyBackupsToKeep=14
WeeklyBackupsToKeep=8
MonthlyBackupsToKeep=3
ssh root@${UNIFIUDM_IP} tar -c -f /volume1/data_backup.tar.gz /data
ssh root@${UNIFIUDM_IP} tar -c -f /volume1/root_backup.tar.gz /root
scp root@${UNIFIUDM_IP}:/volume1/*_backup.tar.gz ${BAKFOLDER}/${newBAKFOLDER}/
ssh root@${UNIFIUDM_IP} rm -f /volume1/*_backup.tar.gz
cd ${BAKFOLDER}
if [ "$(date +%d)" == "${DOM}" ] && [ "$(date +%u)" == "${DOW}" ]; then
mv ${newBAKFOLDER} "${newBAKFOLDER}-M"
ln -s "${newBAKFOLDER}-M" "${newBAKFOLDER}-W"
ln -s "${newBAKFOLDER}-M" "${newBAKFOLDER}-D"
elif [ "$(date +%d)" == "${DOM}" ]; then
mv ${newBAKFOLDER} "${newBAKFOLDER}-M"
ln -s "${newBAKFOLDER}-M" "${newBAKFOLDER}-D"
elif [ "$(date +%u)" == "${DOW}" ]; then
mv ${newBAKFOLDER} "${newBAKFOLDER}-W"
ln -s "${newBAKFOLDER}-W" "${newBAKFOLDER}-D"
else
mv ${newBAKFOLDER} "${newBAKFOLDER}-D"
fi
dailyfilestokeep=(`ls -d ${BAKFOLDER}/*-D 2> /dev/null | tail -${DailyBackupsToKeep}`)
weeklyfilestokeep=(`ls -d ${BAKFOLDER}/*-W 2> /dev/null | tail -${WeeklyBackupsToKeep}`)
monthlyfilestokeep=(`ls -d ${BAKFOLDER}/*-M 2> /dev/null | tail -${MonthlyBackupsToKeep}`)
for folder in $(ls -d ${BAKFOLDER}/*); do
if [ "${folder}" != "${BAKFOLDER}/mounted" ]; then
if [[ "${folder}" == *"-D"* ]]; then
filestokeep=${dailyfilestokeep[@]}
elif [[ "${folder}" == *"-W"* ]]; then
filestokeep=${weeklyfilestokeep[@]}
elif [[ "${folder}" == *"-M"* ]]; then
filestokeep=${monthlyfilestokeep[@]}
fi
keep=0
for file in ${filestokeep}; do
if [ "${folder}" == "${file}" ]; then
keep=1; break
fi
done;
[ $keep == 0 ] && delFolder="D:\\UniFi-UDM_Backups\\${folder##*/}" && ssh backup@10.10.1.60 rmdir "${delFolder}"
fi
done
else
SENDNOTICE "UniFi-UDM Backup Failed" "Could not contact 'UDM @ ${UNIFIUDM_IP}' for backup" 1
fi
}
RUN_COMMAND(){
echo "${1} ${2} ${3} ${4} ${5} ${6} ${7} ${8} ${9} ${10} ${11} ${12} ${13} ${14}"
for NTYPE in "${NM_NODE_TYPES[@]}"; do