#!/bin/bash . /etc/remote-backup/defaults.conf declare -i i=0 usage(){ cat <<-EOF set-backup -N [-R ] /dev/... (default: $MOUNT_DEVICE) -s [host:]/path|host::module (default: $REMOTE_LOCATION) [-d ] /path/dest (default: $SNAPSHOT_RW) [-X [-X ...]] [-b ] in kBytes/s (default: $BWLIMIT) [-n ] (default: $MAX_ROTATE) EOF exit 1 } while getopts 'R:d:s:X:N:n:b:' opt do case $opt in R) loc_REMOUNT=true loc_MOUNT_DEVICE="$OPTARG" ;; d) loc_SNAPSHOT_RW="$OPTARG" ;; s) loc_REMOTE_LOCATION="$OPTARG" ;; X) loc_EXCLUDE[$i]="$OPTARG" i+=1 ;; N)loc_NAME="$OPTARG" ;; n) loc_MAX_ROTATE="$OPTARG" ;; b) loc_BWLIMIT="$OPTARG" ;; *) usage ;; esac done [ -z "$loc_REMOTE_LOCATION" -o -z "$loc_NAME" ] && usage [ ! -d "/etc/remote-backup/${loc_NAME//\//_}" ] \ && mkdir "/etc/remote-backup/${loc_NAME//\//_}" [ -z "$loc_REMOUNT" -a -z "$REMOUNT" ] && echo "Check config file" && exit 2 [[ "$REMOUNT" == "true" ]] && [ -z "$loc_MOUNT_DEVICE" -a -z "$MOUNT_DEVICE" ] && echo "Check config file" && exit 2 [ -z "$loc_SNAPSHOT_RW" -a -z "$SNAPSHOT_RW" ] && echo "Check config file" && exit 2 [ -z "$loc_REMOTE_LOCATION" -a -z "$REMOTE_LOCATION" ] && echo "Check config file" && exit 2 [ -z "$loc_EXCLUDES" -a -z "$EXCLUDES" ] && echo "Check config file" && exit 2 [ -z "$loc_MAX_ROTATE" -a -z "$MAX_ROTATE" ] && echo "Check config file" && exit 2 [ -z "$loc_BWLIMIT" -a -z "$BWLIMIT" ] && echo "Check config file" && exit 2 for param in NAME REMOUNT MOUNT_DEVICE SNAPSHOT_RW REMOTE_LOCATION \ MAX_ROTATE BWLIMIT do if [ -n "$(eval echo '$loc_'"$(echo $param)")" ] then eval echo $param='"$loc_'$(echo $param)'"' fi done > /etc/remote-backup/"${loc_NAME//\//_}"/config if [ ${#loc_EXCLUDE[@]} -gt 0 ] then echo EXCLUDES=/etc/remote-backup/"${loc_NAME//\//_}"/excludes \ >> /etc/remote-backup/"${loc_NAME//\//_}"/config for indice in ${!loc_EXCLUDE[@]} do echo "${loc_EXCLUDE[$indice]}" done > /etc/remote-backup/"${loc_NAME//\//_}"/excludes fi