misc-scripts/backup/server/share/fetch-local

45 lines
1.2 KiB
Text
Raw Normal View History

#!/bin/bash
function FETCH
{
local fetchroot="/"
if [ "x$BASE" != "x" ]; then
fetchroot="$fetchroot/$BASE"
fi
if [ "x$ROOT" != "x" ]; then
fetchroot="$fetchroot/$ROOT"
fi
fetchroot="`echo "$fetchroot" | sed -e 's/\/\+/\//g'`"
if ! [ -d "$fetchroot" ]; then
echo -e "\t\t\tCONFIGURATION ERROR: missing root directory '$fetchroot'" >&2
exit 1
fi
echo -e "\t\t\tRoot directory:\t$fetchroot" >&2
local tarerrors="`mktemp`"
chmod 600 "$tarerrors"
local command='tar --numeric-owner --one-file-system --ignore-failed-read --warning=none -c'
local index=
for index in $( seq 0 $(( ${#backup_exclude[@]} - 1 )) ); do
command="$command"' "--exclude='"`echo "./${backup_exclude[$index]}" | sed -e 's/\/\+/\//g' -e 's/\/$//'`"'"'
done
command="$command"' ".'"$backup_directory"'"'
cd "$fetchroot"
eval $command 2>"$tarerrors"
if ! [ -z "`cat $tarerrors`" ]; then
echo -e "\t\t\tFETCH ERROR: something went wrong while creating the archive:" >&2
echo -e "-----------------------------------------------------" >&2
cat "$tarerrors" >&2
echo -e "-----------------------------------------------------" >&2
rm -f "$tarerrors"
return 1
fi
rm -f "$tarerrors"
return 0
}