This commit is contained in:
2024-01-04 20:40:28 -06:00
parent 3ecf0bb09b
commit 731c3a8a00
2 changed files with 72 additions and 1 deletions

View File

@@ -1,5 +1,5 @@
#!/usr/bin/env bash
VERS='5.1.52-01042024'
VERS='5.1.53-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

@@ -634,6 +634,77 @@ BACKUP_UNIFIUDM(){
fi
}
BACKUP_UNIFINVR(){
BAKFOLDER=/mnt/Veam-UniFi-NVR_Backups
UNIFINVR_IP='10.10.70.1'
if [ "$(CHECK_HOST ${UNIFINVR_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-NVR 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@${UNIFINVR_IP} tar -c -f /volume1/data_backup.tar.gz /data
ssh root@${UNIFINVR_IP} tar -c -f /volume1/root_backup.tar.gz /root
ssh root@${UNIFINVR_IP} tar -c -f /volume1/unifi_backup.tar.gz /volume1/.srv/unifi-protect/backups /volume1/.srv/unifi-protect/data /volume1/.srv/unifi-protect/dbBackups
scp root@${UNIFINVR_IP}:/volume1/*_backup.tar.gz ${BAKFOLDER}/${newBAKFOLDER}/
ssh root@${UNIFINVR_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-NVR_Backups\\${folder##*/}" && ssh backup@10.10.1.60 rmdir "${delFolder}"
fi
done
else
SENDNOTICE "UniFi-NVR Backup Failed" "Could not contact 'NVR @ ${UNIFINVR_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