From d8388f56f87dfc14dca7742822a766879eb60b4f Mon Sep 17 00:00:00 2001 From: David Schroeder Date: Thu, 4 Jan 2024 18:09:46 -0600 Subject: [PATCH] update --- defaults.inc | 2 +- nodemgmt-scripts.sh | 69 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 70 insertions(+), 1 deletion(-) diff --git a/defaults.inc b/defaults.inc index 32781a50..3007c3fb 100755 --- a/defaults.inc +++ b/defaults.inc @@ -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 ' diff --git a/nodemgmt-scripts.sh b/nodemgmt-scripts.sh index dcf1155e..0f50d59a 100755 --- a/nodemgmt-scripts.sh +++ b/nodemgmt-scripts.sh @@ -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