ruạṛ
#!/bin/bash # 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_SNAPSHOT_DAY="" NEWENOUGH=0 RECENT_THRESHOLD=`date +%Y%m%d -d '15 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 | sort`; do BACKUP_DIR=/app/backups/$DATE BACKUP_FILE=$BACKUP_DIR/$CHECKFILE if [[ ! -e $BACKUP_FILE ]]; then continue fi if [[ ! $DATE =~ ^[0-9]{8}$ ]]; then continue fi FILE_EPOCH=`stat -c %Y "$BACKUP_FILE" 2>/dev/null` if [[ -z $FILE_EPOCH ]]; then FILE_EPOCH=`stat -f %m "$BACKUP_FILE" 2>/dev/null` fi if [[ -z $FILE_EPOCH ]]; then continue fi FILE_DAY=`date -d "@$FILE_EPOCH" +%Y%m%d 2>/dev/null` if [[ -z $FILE_DAY ]]; then continue fi DIR_DAY_EPOCH=`date -d "$DATE" +%s 2>/dev/null` FILE_DAY_EPOCH=`date -d "$FILE_DAY" +%s 2>/dev/null` if [[ -z $DIR_DAY_EPOCH || -z $FILE_DAY_EPOCH ]]; then continue fi DAY_DIFF=$(( (DIR_DAY_EPOCH - FILE_DAY_EPOCH) / 86400 )) if (( DAY_DIFF != 1 )); then continue fi if [[ $FILE_DAY == $LAST_SNAPSHOT_DAY ]]; then continue fi VALID=$(( VALID + 1 )) LAST_SNAPSHOT_DAY=$FILE_DAY if [[ $FILE_DAY -ge $RECENT_THRESHOLD ]]; then NEWENOUGH=1 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
cải xoăn