examples/backup
changeset 137 dd11d1262b6c
parent 136 a5d087334439
child 138 790ac145bccc
--- 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