1#!/bin/bash
2
3ACTION="$1"
4LABEL="$2"
5ARG0="$3"
6ARG1="$4"
7
8FROM="/srv/lxc/${LABEL}"
9CLUSTERNAME=$(clustername)
10BACKUPHOST=$(backuphost)
11BACKUPMNT="/mnt/backup"
12BACKUPDECR="/decrement/${LABEL}"
13BACKUPMIRROR="rsync://$CLUSTERNAME@$BACKUPHOST/$HOSTNAME/mirror/${LABEL}"
14
15if [ "$CLSYNC_STATUS" = "initsync" ]; then
16	STATICEXCLUDE=''
17else
18	STATICEXCLUDE='--exclude-from=/etc/clsync/synchandler/lxc/rsync.exclude'
19fi
20
21function rsynclist() {
22	LISTFILE="$1"
23	EXCLISTFILE="$2"
24
25	excludefrom=''
26	if [ "$EXCLISTFILE" != "" ]; then
27		excludefrom="--exclude-from=${EXCLISTFILE}"
28	fi
29
30#	if ! mount | grep "$BACKUPMNT" > /dev/null; then
31#		mount "$BACKUPMNT"
32#	fi
33
34#	if mount | grep "$BACKUPMNT" > /dev/null; then
35		if ping -w 1 -qc 5 -i 0.1 $BACKUPHOST > /dev/null; then
36			#if [ ! -d "$BACKUPDECR" ]; then
37			#	mkdir -p "$BACKUPDECR"
38			#fi
39			exec rsync --password-file="/etc/backup.pass" -aH --timeout=3600 --inplace --delete-before $STATICEXCLUDE "$excludefrom" --include-from="${LISTFILE}" --exclude='*' --backup --backup-dir="$BACKUPDECR"/ "$FROM"/ "$BACKUPMIRROR"/ 2>/tmp/clsync-rsync-"$LABEL"-backup.err
40		else
41			sleep $[ 3600 + $RANDOM % 1800 ]
42			return 128
43		fi
44#	else
45#		sleep $[ 3600 + $RANDOM % 1800 ]
46#		return 128
47#	fi
48}
49
50case "$ACTION" in
51	rsynclist)
52		rsynclist "$ARG0" "$ARG1"
53		;;
54esac
55
56exit 0
57
58