examples/backup
changeset 102 af5341476dc2
parent 95 006cedfc3ce2
equal deleted inserted replaced
101:5315b8826c6f 102:af5341476dc2
     1 #! /bin/bash -e
     1 #! /bin/bash -e
       
     2 
       
     3 # just a simple(!) example, not intended for production use
       
     4 # without supervision!
     2 
     5 
     3 export TMPDIR=/var/tmp
     6 export TMPDIR=/var/tmp
     4 export LC_ALL=C
     7 export LC_ALL=C
     5 
     8 
     6 SNAPSIZE=1G
     9 SNAPSIZE=1G
     7 DST=${1?need destination folder}
    10 DST=${1?need destination folder}
     8 VG=`hostname`
    11 VG=`hostname`
     9 DEV=/dev/sda1
    12 DEV=/dev/sda1
    10 NICE=
    13 NICE=
    11 
    14 
       
    15 NAGIOS_NSCA=nagios.net.schlittermann.de
       
    16 NAGIOS_HOST=gentoo-chemnitz/wintraken
       
    17 NAGIOS_SVC=BACKUP
       
    18 NAGIOS_MSG="failed ($DST)"
       
    19 NAGIOS_STATUS=2
       
    20 
       
    21 
    12 now=`date +%s`
    22 now=`date +%s`
    13 tmp=`mktemp`
    23 tmp=`mktemp`
    14 snaps=`mktemp`
    24 snaps=`mktemp`
       
    25 
       
    26 send_nsca() {
       
    27         /usr/lib/nagios/plugins/send_nsca \
       
    28                 -H $NAGIOS_NSCA \
       
    29                 -c /etc/nagios/send_nsca.cfg "$@"
       
    30 }
       
    31 
    15 
    32 
    16 _lvremove() {
    33 _lvremove() {
    17 	local dev=$1
    34 	local dev=$1
    18 	local vg=${dev%/*}
    35 	local vg=${dev%/*}
    19 	local lv=${dev#*/}
    36 	local lv=${dev#*/}
    35 		test -e "$dev" && test "$cleanup" || continue
    52 		test -e "$dev" && test "$cleanup" || continue
    36 		eval $cleanup || true
    53 		eval $cleanup || true
    37 	done < $snaps
    54 	done < $snaps
    38 
    55 
    39 	rm -f $tmp $snaps
    56 	rm -f $tmp $snaps
       
    57 
       
    58 	echo "$NAGIOS_HOST:$NAGIOS_SVC:$NAGIOS_STATUS:$NAGIOS_SVC $NAGIOS_MSG" | send_nsca -d :
       
    59 
    40 }
    60 }
    41 
    61 
    42 trap cleanup EXIT INT
    62 trap cleanup EXIT INT
    43 
    63 
    44 for dev in $DEV; do
    64 for dev in $DEV; do
    87 	fi
   107 	fi
    88 	test "$cleanup" && eval $cleanup || true
   108 	test "$cleanup" && eval $cleanup || true
    89 done <$snaps
   109 done <$snaps
    90 date
   110 date
    91 date  >/var/log/backup.done
   111 date  >/var/log/backup.done
       
   112 
       
   113 NAGIOS_MSG="done ($DST)"
       
   114 NAGIOS_STATUS=0