Skip to content
Snippets Groups Projects
Commit 6986483b authored by Hahn Axel (hahn)'s avatar Hahn Axel (hahn)
Browse files

show last backup, prune and verify

parent 0c2ff046
No related branches found
No related tags found
1 merge request!81show last backup, prune and verify
...@@ -15,6 +15,7 @@ ...@@ -15,6 +15,7 @@
# 2022-01-19 ah v1.1 fixes with shellcheck # 2022-01-19 ah v1.1 fixes with shellcheck
# 2022-02-09 ah v1.2 update after changes in logging # 2022-02-09 ah v1.2 update after changes in logging
# 2022-10-07 ah v1.3 unescape regex with space to prevent "grep: warning: stray \ before white space" # 2022-10-07 ah v1.3 unescape regex with space to prevent "grep: warning: stray \ before white space"
# 2022-10-20 ah v1.4 show last backup, prune and verify
# ============================================================================== # ==============================================================================
. $(dirname $0)/jobhelper.sh . $(dirname $0)/jobhelper.sh
...@@ -24,16 +25,56 @@ ...@@ -24,16 +25,56 @@
# ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------
typeset -i iOK=0 typeset -i iOK=0
typeset -i iError
# limit when to warn if no backup was started # limit when to warn if no backup was started
typeset -i iMaxAgeInHours=96 typeset -i iMaxAgeInHours=24
typeset -i iAge typeset -i iAge
typeset -i iAge2 typeset -i iAgeH
typeset -i iError typeset -i iAgeD
logdir=$(dirname "$0")/logs logdir=$(dirname "$0")/logs
flagShowChangedFiles=0
# ------------------------------------------------------------------------------
# FUNCTIONS
# ------------------------------------------------------------------------------
# get age of a given file and fill global vars
# iAge
# iAgeH
# iAgeD
# param string filename
function getAge(){
typeset -i local tsfile=0
test -r "$1" && tsfile=$( date +%s -r "$1" )
iAge=$( date +%s )-$tsfile
iAgeH=$iAge/60/60
iAgeD=$iAge/60/60/24
}
# show age of a file hr like
function showAge(){
getAge "$1"
if [ $iAgeD -gt 10000 ]; then
echo "NEVER"
else
test $iAgeD -gt 0 && echo -n "$iAgeD days"
test $iAgeD -eq 0 && test $iAgeH -gt 0 && echo -n "$iAgeH h"
test $iAgeD -eq 0 && test $iAgeH -eq 0 && echo -n "$iAge s"
echo " ago"
fi
}
# filter color in given output
# To use it set a pipe in front:
# <command> | filterColor
function filterColor(){
sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g"
}
# ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------
# MAIN # MAIN
...@@ -47,23 +88,16 @@ if [ $? -ne 0 ]; then ...@@ -47,23 +88,16 @@ if [ $? -ne 0 ]; then
iError=1 iError=1
else 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
backuplogfile=$(ls -1t "$logdir"/inc*.log "$logdir"/full*.log "$logdir"/auto*.log 2>/dev/null | head -1) backuplogfile=$(ls -1t "$logdir"/inc*.log "$logdir"/full*.log "$logdir"/auto*.log 2>/dev/null | head -1)
transferlogfile=$(ls -1t "$logdir"/transfer*.log | head -1) transferlogfile=$(ls -1t "$logdir"/transfer*.log | head -1)
logfile="${backuplogfile} ${transferlogfile}" logfile="${backuplogfile} ${transferlogfile}"
lastlogfile="$(ls -1t $logfile | head -1)" lastlogfile="$(ls -1t $logfile | head -1)"
echo LAST BACKUP: "$logfile" echo LAST LOGS: "$logfile"
echo echo
echo ">>> RETURNCODES" # echo ">>> RETURNCODES"
grep "final.*rc=" $logfile # grep "final.*rc=" $logfile
# --- Monitoring Statusline # --- Monitoring Statusline
if [ -f "$(dirname $0)"/transfer.sh ]; then if [ -f "$(dirname $0)"/transfer.sh ]; then
...@@ -77,21 +111,23 @@ else ...@@ -77,21 +111,23 @@ else
iOK=$(grep "final.*rc=0$" $logfile | wc -l ) iOK=$(grep "final.*rc=0$" $logfile | wc -l )
iError=$(grep "final.*rc=" $logfile | grep -v "rc=0$" | wc -l ) iError=$(grep "final.*rc=" $logfile | grep -v "rc=0$" | wc -l )
echo "OK: $iOK ... Errors: $iError" echo "OK: $iOK ... Errors: $iError"
# show errors:
grep "final.*rc=" $logfile | grep -v "rc=0"
# --- rc=0 must be here # --- rc=0 must be here
if [ $iOK -eq 0 ]; then if [ $iOK -eq 0 ]; then
echo "ERROR: no OK message was found. Something is messed up :-/" echo "ERROR: no OK message was found. Something is messed up :-/"
iError+=1 iError+=1
fi fi
echo
# --- check age # --- check age
echo
echo ">>> AGE" echo ">>> AGE"
iAge=$( date +%s )-$( date +%s -r "$lastlogfile" ) getAge "$lastlogfile"
iAge2=$iAge/60/60 echo "age: $iAge sec ... $iAgeH h"
echo "age: $iAge sec ... $iAge2 h" sShort="$sShort last backup log: $(basename "$lastlogfile") ($iAgeH h ago) "
sShort="$sShort last backup log: $(basename "$lastlogfile") ($iAge2 h ago) " if [ $iAgeH -gt $iMaxAgeInHours ]; then
if [ $iAge2 -gt $iMaxAgeInHours ]; then
echo "Error: the last backup is older than $iMaxAgeInHours hours" echo "Error: the last backup is older than $iMaxAgeInHours hours"
sShort="$sShort ERROR: backup is older than $iMaxAgeInHours hours " sShort="$sShort ERROR: backup is older than $iMaxAgeInHours hours "
iError+=1 iError+=1
...@@ -100,33 +136,35 @@ else ...@@ -100,33 +136,35 @@ else
sShort="$sShort OK: backup is younger than $iMaxAgeInHours hours " sShort="$sShort OK: backup is younger than $iMaxAgeInHours hours "
iOK+=1 iOK+=1
fi fi
echo
# --- changes (incremental backups only) and backup status infos # --- changes (incremental backups only) and backup status infos
# echo if [ $flagShowChangedFiles -ne 0 ]; then
# sSearch="Args:|ElapsedTime|SourceFiles|SourceFileSize|RawDeltaSize" sSearch="Args:|ElapsedTime|SourceFiles|SourceFileSize|RawDeltaSize"
# echo "$logfile" | grep -F "inc" >/dev/null if echo "$logfile" | grep -E "(inc|auto)" >/dev/null; then
# if [ $? -eq 0 ]; then sSearch="[ADM] |${sSearch}"
# sSearch="[ADM] |${sSearch}" fi
# fi echo ">>> Changes:"
# echo --- changes: grep -E "^(${sSearch})" $logfile | cut -f 2- -d ':'
# grep -E "^(${sSearch})" "$logfile" echo
fi
echo ">>> Summary of database backup actions:"
cat $logfile | grep "__[A-Z][A-Z]*__" | grep '__DB__' | filterColor
echo echo
# echo ">>> Summary of backed up directories:"
# cat $logfile | grep "DIR "
echo ">>> Summary of backup actions:"
cat $logfile | grep "__[A-Z][A-Z]*__"
echo ">>> Summary of transfer actions:"
cat $logfile | grep "__[A-Z][A-Z]*__" | grep -v '__DB__' | filterColor
echo
sShort="$sShort - OK: $iOK ... Errors: $iError" sShort="$sShort - OK: $iOK ... Errors: $iError"
# done
fi fi
echo ">>> Backup repository:"
echo "__LAST__backup " $(showAge "$logdir/last_backup")
echo "__LAST__prune " $(showAge "$logdir/last_prune")
echo "__LAST__verify " $(showAge "$logdir/last_verify")
echo echo
echo "MONITORINFO: $sShort" echo "MONITORINFO: $sShort"
echo "STATUS $0 - final returncode rc=$iError" echo "STATUS $0 - final returncode rc=$iError"
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment