snap-sync: new function check_prerequisites()
- check availability of referenced programs at runtime - check if $SNAPPER_CONFIG is readable Signed-off-by: Ralf Zerres <ralf.zerres@networkx.de>
This commit is contained in:
@@ -43,6 +43,23 @@ exec 3>$PIPE
|
|||||||
# functions
|
# functions
|
||||||
###
|
###
|
||||||
|
|
||||||
|
check_prerequisites () {
|
||||||
|
|
||||||
|
# requested binaries:
|
||||||
|
which awk >/dev/null 2>&1 || { echo "'awk' is not installed." && exit 1; }
|
||||||
|
which sed >/dev/null 2>&1 || { echo "'sed' is not installed." && exit 1; }
|
||||||
|
which tee >/dev/null 2>&1 || { echo "'tee' is not installed." && exit 1; }
|
||||||
|
which btrfs >/dev/null 2>&1 || { echo "'btrfs' is not installed." && exit 1; }
|
||||||
|
which findmnt >/dev/null 2>&1 || { echo "'findmnt' is not installed." && exit 1; }
|
||||||
|
which notify-send >/dev/null 2>&1 || { echo "'notify-send' is not installed." && exit 1; }
|
||||||
|
|
||||||
|
if [ $(id -u) -ne 0 ] ; then echo "Script must be run as root" ; exit 1 ; fi
|
||||||
|
|
||||||
|
if [ ! -r "$SNAPPER_CONFIG" ]; then
|
||||||
|
die "$SNAPPER_CONFIG does not exist."
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
die() {
|
die() {
|
||||||
error "$@"
|
error "$@"
|
||||||
exit 1
|
exit 1
|
||||||
@@ -179,7 +196,7 @@ Options:
|
|||||||
directory name on first backup"
|
directory name on first backup"
|
||||||
-u, --UUID <UUID> Specify the UUID of the mounted BTRFS subvolume to back up to. Otherwise will prompt."
|
-u, --UUID <UUID> Specify the UUID of the mounted BTRFS subvolume to back up to. Otherwise will prompt."
|
||||||
If multiple mount points are found with the same UUID, will prompt user."
|
If multiple mount points are found with the same UUID, will prompt user."
|
||||||
--remote <address> Send the snapshot backup to a remote machine. The snapshot will be sent via ssh. You
|
--remote <address> Send the snapshot backup to a remote machine. The snapshot will be sent via ssh. You
|
||||||
should specify the remote machine's hostname or ip address. The 'root' user must be
|
should specify the remote machine's hostname or ip address. The 'root' user must be
|
||||||
permitted to login on the remote machine.
|
permitted to login on the remote machine.
|
||||||
-v, --verbose Be more verbose on what's going on.
|
-v, --verbose Be more verbose on what's going on.
|
||||||
@@ -199,8 +216,7 @@ ssh=""
|
|||||||
|
|
||||||
parse_params $@
|
parse_params $@
|
||||||
|
|
||||||
[[ $EUID -ne 0 ]] && die "Script must be run as root."
|
check_prerequisites
|
||||||
! [[ -f $SNAPPER_CONFIG ]] && die "$SNAPPER_CONFIG does not exist."
|
|
||||||
|
|
||||||
if [[ "$uuid_cmdline" != "none" ]]; then
|
if [[ "$uuid_cmdline" != "none" ]]; then
|
||||||
if [[ -z $ssh ]]; then
|
if [[ -z $ssh ]]; then
|
||||||
@@ -290,10 +306,6 @@ else
|
|||||||
printf "The disk is mounted at %s:%s.\n" "$remote" "$selected_mnt" | tee $PIPE
|
printf "The disk is mounted at %s:%s.\n" "$remote" "$selected_mnt" | tee $PIPE
|
||||||
fi
|
fi
|
||||||
|
|
||||||
source $SNAPPER_CONFIG
|
|
||||||
|
|
||||||
selected_configs=${selected_configs:-$SNAPPER_CONFIGS}
|
|
||||||
|
|
||||||
declare -a BACKUPDIRS_ARRAY
|
declare -a BACKUPDIRS_ARRAY
|
||||||
declare -a MYBACKUPDIR_ARRAY
|
declare -a MYBACKUPDIR_ARRAY
|
||||||
declare -a OLD_NUM_ARRAY
|
declare -a OLD_NUM_ARRAY
|
||||||
|
|||||||
Reference in New Issue
Block a user