--- a/examples/backup Sat Jul 25 17:16:13 2015 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,114 +0,0 @@
-#! /bin/bash -e
-
-# just a simple(!) example, not intended for production use
-# without supervision!
-
-export TMPDIR=/var/tmp
-export LC_ALL=C
-
-SNAPSIZE=1G
-DST=${1?need destination folder}
-VG=`hostname`
-DEV=/dev/sda1
-NICE=
-
-NAGIOS_NSCA=nagios.net.schlittermann.de
-NAGIOS_HOST=gentoo-chemnitz/wintraken
-NAGIOS_SVC=BACKUP
-NAGIOS_MSG="failed ($DST)"
-NAGIOS_STATUS=2
-
-
-now=`date +%s`
-tmp=`mktemp`
-snaps=`mktemp`
-
-send_nsca() {
- /usr/lib/nagios/plugins/send_nsca \
- -H $NAGIOS_NSCA \
- -c /etc/nagios/send_nsca.cfg "$@"
-}
-
-
-_lvremove() {
- local dev=$1
- local vg=${dev%/*}
- local lv=${dev#*/}
-
- udevadm settle || true
- lvremove -f "$dev" || {
- dmsetup remove /dev/$vg/$lv \
- && udevadm settle \
- && dmsetup remove /dev/$vg/$lv-cow \
- && udevadm settle \
- && lvremove -f "$dev" || true
- }
-}
-
-cleanup() {
-
- while read lvm dev orig cleanup; do
- udevadm settle
- test -e "$dev" && test "$cleanup" || continue
- eval $cleanup || true
- done < $snaps
-
- rm -f $tmp $snaps
-
- echo "$NAGIOS_HOST:$NAGIOS_SVC:$NAGIOS_STATUS:$NAGIOS_SVC $NAGIOS_MSG" | send_nsca -d :
-
-}
-
-trap cleanup EXIT INT
-
-for dev in $DEV; do
- if mount -o remount,ro $dev; then
- echo "- $tmp - rm -fv $tmp" >>$snaps
- cp -v $dev $tmp
- mount -o remount,rw $dev
- file -s $tmp | egrep -q "ext[234] filesystem" && e2fsck -C0 -f -y $tmp || true
- imager save --now=$now -z $tmp:$dev $DST
- rm -f $tmp
- fi
-done
-
-
-lvs -o vg_name,lv_name,origin --noheadings $VG | while read vg lv origin; do
- # LVM-name DEV-name ORIG-name (cleanup)
-
- orig="$vg/$lv"
- if test "$origin"; then
- dev="/dev/$vg/$lv"
- echo "$vg/$lv $dev $dev" >>$snaps
- continue
- fi
- snap="$vg/$lv.snap.$now"
- dev="/dev/$vg/$lv.snap.$now"
- lvcreate -s -L $SNAPSIZE -n "$snap" "$orig"
- echo "$snap $dev /dev/$vg/$lv _lvremove $snap" >>$snaps
-done
-
-udevadm settle
-
-while read snap dev name cleanup; do
- test "$snap" = "-" && continue
- for a in 1 2 3; do
- file -s `readlink -f $dev` | egrep -q "ext[234] filesystem" && $NICE fsck -y "$dev" && break
- case $? in
- 32) exit;;
- *) true;;
- esac
- done
- if test $? = 0; then
- $NICE imager save --now=$now -z $dev:$name $DST
- case `lvs -o snap_percent --noheadings "$snap"` in
- 100*) echo "****************** $snap is full!";;
- esac
- fi
- test "$cleanup" && eval $cleanup || true
-done <$snaps
-date
-date >/var/log/backup.done
-
-NAGIOS_MSG="done ($DST)"
-NAGIOS_STATUS=0