Edit file File name : check_a2_backups Content :#!/bin/bash # LC - 24/08/2020 - Option to consider new provisions | SYSENG-1299 now=$(date +%s) upseconds=$(( $(awk -F. '{print $1}' /proc/uptime) )) miniontime=$((now - $(stat -c %Y /etc/salt/minion) )) # Uptime limit, 5 days uplimit=432000 if [[ ${upseconds} -lt ${uplimit} ]] && [[ ${miniontime} -lt ${uplimit} ]]; then echo "Backups - New provision" exit 0 fi # KLY - 2023-03-20 - Check if we are instead using jetbackup - SYSENG-18454 rpm -q jetbackup5-base --quiet if [[ $? -eq 0 ]]; then echo "Backups - handled by Jetbackup" exit 0 fi # BFENG-1633 - disabling alerts for vplatorm servers. if [[ $(hostname) =~ vplatform ]]; then echo "Backups - Platform servers need not be backed up" exit 0 fi # LC - 12/12/2017 - Added option to consider Backup maintenance period | OPS-709 m_start=200 #2:00 AM - Maintenance start m_finish=530 #5:00 AM - Maintenance finish + 30m grace time check_hour=$(date +%H%M | sed 's/^0//') if [[ ${check_hour} -ge ${m_start} ]] && [[ ${check_hour} -le ${m_finish} ]]; then echo "Backups - Backup maintenance period" exit 0 fi # LC - 15/3/2023 - Additionally exclude JBK servers if [ -e /root/.no_backup_mounts ] || [[ $(hostname) =~ dedibackup ]] || [[ $(hostname) =~ jbk ]]; then echo "Backups - Not supposed to be backed up or mounted" exit 0 fi CHECKFILE=var/log/messages VALID=0 LAST=0 NEWENOUGH=0 THREE_DAYS_AGO=$(( `date +%s` - 604800 )) THREE_DAYS_AGO=`date +%Y%m%d -d @$THREE_DAYS_AGO` BACKUP_SERVER=`cat /etc/a2dp/backup_location` if [ ! -d /app/backups ] || [ ! -e /etc/a2dp/backup_location ]; then echo "Backups - Seemingly NOT being backed up AT ALL!" exit 2 fi for DATE in `ls -1 /app/backups`;do if [ -e /app/backups/$DATE/$CHECKFILE ]; then FILEDATE=`ls -ld --time-style='+%Y%m%d' /app/backups/$DATE/$CHECKFILE|awk '{print $6}'` if (( $FILEDATE >= $LAST )); then VALID=$(( $VALID + 1 )) LAST=$FILEDATE if (( $FILEDATE >= $THREE_DAYS_AGO )); then NEWENOUGH=1 fi fi fi done case "$VALID" in 0) MESSAGE="2 Backups - $BACKUP_SERVER: No Valid Backups" EXITCODE=2 ;; 1|2|3|4|5) MESSAGE="1 Backups - $BACKUP_SERVER: Only $VALID valid Backups" if (( $NEWENOUGH != 1 )); then MESSAGE="$MESSAGE and none are new enough" fi EXITCODE=1 ;; *) if (( $NEWENOUGH != 1 )); then MESSAGE="1 Backups - $VALID valid backups but none are new enough" EXITCODE=1 else MESSAGE="0 Backups - $VALID valid backups" EXITCODE=0 fi ;; esac if ! mountpoint -q /app/backups ; then MESSAGE="2 Backups - $BACKUP_SERVER: NFS not mounted" EXITCODE=2 fi if [[ -z ${EXITCODE} ]]; then EXITCODE=0 fi echo $MESSAGE exit $EXITCODE Save