Skip to content
Snippets Groups Projects
Select Git revision
  • bd0dc443823d5949355d0be6ad992ce2f44c38fc
  • master default protected
  • Legacy_Php7
3 results

projectlist.class.php

Blame
  • check_clientbackup.sh 3.11 KiB
    #!/bin/bash
    # ==============================================================================
    #
    # check status of last performed backup
    #
    # This script checks the last logfile and scans for errors
    # An error is a returncode <> 0 or a too old logfile
    #
    # ------------------------------------------------------------------------------
    #
    # ah - Axel Hahn <axel.hahn@iml.unibe.ch>
    # ds - Daniel Schueler <daniel.schueler@iml.unibe.ch>
    #
    # 2016-12-09  ah,ds  v1.0
    # ==============================================================================
    
    . `dirname $0`/jobhelper.sh
    
    # ------------------------------------------------------------------------------
    # CONFIG
    # ------------------------------------------------------------------------------
    
    typeset -i iOK=0
    typeset -i iErr=0
    typeset -i rc=0
    
    typeset -i iAge
    typeset -i iAge2
    typeset -i iError
    
    logdir=`dirname $0`/logs
    
    
    # ------------------------------------------------------------------------------
    # MAIN
    # ------------------------------------------------------------------------------
    
    sShort="Client Backup -"
    
    ls $logdir/*.log >/dev/null
    if [ $? -ne 0 ]; then
      sShort="$sShort logs were not found. Backup was never executed"
      iError=1
    else
    
      iMaxAgeInHours=`j_getLastBackupAge`
      echo verify last backup: $iMaxAgeInHours h ago
    
      for logfile in `ls -1t $logdir/inc*.log $logdir/full*.log $logdir/auto*.log 2>/dev/null | head -1`
      do
        echo LAST BACKUP: $logfile
        grep "final.*rc=" $logfile
        echo
    
        # --- SENSU Statusline
        if [ -f `dirname $0`/transfer.sh ]; then
          sShort="$sShort WITH"
        else
          sShort="$sShort NO"
        fi
        sShort="$sShort transfer -"
    
        # --- count returncodes
        iOK=`grep "final.*rc=0$" $logfile | wc -l`
        iError=`grep "final.*rc=" $logfile | grep -v "rc=0$" | wc -l`
        echo "OK: $iOK ... Errors: $iError"
    
        # --- rc=0 must be here
        if [ $iOK -eq 0 ]; then
          echo "ERROR: no OK message was found. Something is messed up :-/"
          iError=$iError+1
        fi
    
        # --- check age
        iAge=`date +%s`-`stat -c %Y $logfile`
        iAge2=$iAge/60/60
        echo age: $iAge sec ... $iAge2 h
        sShort="$sShort last backup log: `basename $logfile` ($iAge2 h ago) "
        if [ $iAge2 -gt $iMaxAgeInHours ]; then
          echo "Error: the last backup is older than $iMaxAgeInHours hours"
          sShort="$sShort ERROR: backup is older than $iMaxAgeInHours hours "
          iError=$iError+1
        else
          echo "OK: last backup is younger $iMaxAgeInHours hours"
          sShort="$sShort OK: backup is younger than $iMaxAgeInHours hours "
        fi
    
        # --- changes (incremental backups only) and backup status infos
        echo
        sSearch="Args:|ElapsedTime|SourceFiles|SourceFileSize|RawDeltaSize"
        echo $logfile | fgrep "inc" >/dev/null
        if [ $? -eq 0 ]; then
          sSearch="[ADM]\ |${sSearch}"
        fi
        echo --- changes:
        egrep "^(${sSearch})" $logfile
    
        echo
        echo --- summary of backed up directories:
        grep "DIR\ " $logfile
      
        sShort="$sShort - OK: $iOK ... Errors: $iError"
    
      done
    
    
    fi
    
    
    echo
    echo MONITORINFO: $sShort
    echo STATUS $0 - final returncode rc=$iError
    exit $iError
    
    # ------------------------------------------------------------------------------