Benjamin Renard commited on 2009-10-15 17:26:07
Showing 1 changed files, with 47 additions and 0 deletions.
| ... | ... |
@@ -0,0 +1,47 @@ |
| 1 |
+#!/bin/bash |
|
| 2 |
+ |
|
| 3 |
+LOG=/var/log/postgresql/postgresql-8.3-main.log |
|
| 4 |
+WAL=/var/lib/postgresql/8.3/main/wal_archives |
|
| 5 |
+WARN=5 |
|
| 6 |
+CRIT=10 |
|
| 7 |
+WARN_SIZE=500 |
|
| 8 |
+CRIT_SIZE=1000 |
|
| 9 |
+ |
|
| 10 |
+verb=0 |
|
| 11 |
+[ "$1" == "-v" ] && verb=1 |
|
| 12 |
+ |
|
| 13 |
+last="`grep "restored log file" $LOG|tail -n 1|sed 's/.*restored log file "\([^"]*\)".*/\1/g'`" |
|
| 14 |
+[ $verb -eq 1 ] && echo "Last : $last" |
|
| 15 |
+if [ ! -f $WAL/$last ] |
|
| 16 |
+then |
|
| 17 |
+ echo "PG RESTORE UNKNOWN: The last restored file ($last) is not available" |
|
| 18 |
+ exit 3 |
|
| 19 |
+fi |
|
| 20 |
+nb=`find $WAL -type f -cnewer $WAL/$last|wc -l` |
|
| 21 |
+[ $verb -eq 1 ] && echo "Nb files : $nb" |
|
| 22 |
+nbtot=`find $WAL -type f |wc -l` |
|
| 23 |
+[ $verb -eq 1 ] && echo "Nb total files : $nbtot" |
|
| 24 |
+let 'nbnodel=nbtot-nb' |
|
| 25 |
+[ $verb -eq 1 ] && echo "Nb not deleted files : $nbnodel" |
|
| 26 |
+size=`du -sm $WAL|sed 's/\([0-9]*\).*/\1/g'` |
|
| 27 |
+[ $verb -eq 1 ] && echo "Size : $size MB" |
|
| 28 |
+ |
|
| 29 |
+STATE=OK |
|
| 30 |
+EXIT=0 |
|
| 31 |
+MSG="all files have been restored ($size MB - $nbnodel files not deleted)." |
|
| 32 |
+if [ $nb -gt $CRIT -o $size -gt $CRIT_SIZE ] |
|
| 33 |
+then |
|
| 34 |
+ STATE="CRITICAL" |
|
| 35 |
+ EXIT=2 |
|
| 36 |
+ MSG="$nb files not restored ($size MB - $nbnodel files not deleted)." |
|
| 37 |
+else |
|
| 38 |
+ if [ $nb -gt $WARN -o $size -gt $WARN_SIZE ] |
|
| 39 |
+ then |
|
| 40 |
+ STATE="WARNING" |
|
| 41 |
+ EXIT=1 |
|
| 42 |
+ MSG="$nb files not restored ($size MB - $nbnodel files not deleted)." |
|
| 43 |
+ fi |
|
| 44 |
+fi |
|
| 45 |
+ |
|
| 46 |
+echo "PG RESTORE $STATE: $MSG" |
|
| 47 |
+exit $EXIT |
|
| 0 | 48 |