Implement hardlinking in rsync
This commit is contained in:
parent
0715932a44
commit
05f246d586
1 changed files with 12 additions and 10 deletions
22
ccollect.sh
22
ccollect.sh
|
@ -375,14 +375,14 @@ while [ "$i" -lt "$no_sources" ]; do
|
||||||
# give some info
|
# give some info
|
||||||
echo "Beginning to backup, this may take some time..."
|
echo "Beginning to backup, this may take some time..."
|
||||||
|
|
||||||
echo "Creating $destination_dir ..."
|
|
||||||
mkdir $VVERBOSE "$destination_dir"
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# make an absolute path, perhaps $CCOLLECT_CONF is relative!
|
# make an absolute path, perhaps $CCOLLECT_CONF is relative!
|
||||||
#
|
#
|
||||||
abs_destination_dir="$(cd $destination_dir; pwd -P)"
|
abs_destination_dir="$(cd $destination_dir; pwd -P)"
|
||||||
|
|
||||||
|
echo "Creating $abs_destination_dir ..."
|
||||||
|
mkdir $VVERBOSE "$abs_destination_dir"
|
||||||
|
|
||||||
#
|
#
|
||||||
# the rsync part
|
# the rsync part
|
||||||
# options partly stolen from rsnapshot
|
# options partly stolen from rsnapshot
|
||||||
|
@ -392,19 +392,21 @@ while [ "$i" -lt "$no_sources" ]; do
|
||||||
|
|
||||||
set -x
|
set -x
|
||||||
|
|
||||||
|
ouropts="-a --delete --numeric-ids --relative --delete-excluded"
|
||||||
|
useropts="$VERBOSE $EXCLUDE $SUMMARY $RSYNC_EXTRA"
|
||||||
|
|
||||||
# Clone from previous backup, if existing
|
# Clone from previous backup, if existing
|
||||||
if [ "$last_dir" ]; then
|
if [ "$last_dir" ]; then
|
||||||
last_dir="$(cd "$last_dir"; pwd -P)"
|
rsync_hardlink="--link-dest=$last_dir"
|
||||||
rsync_hardlink="--link-dest=\"$last_dir\""
|
rsync $ouropts "$rsync_hardlink" $useropts "$source" "$abs_destination_dir"
|
||||||
|
else
|
||||||
|
rsync $ouropts $useropts "$source" "$abs_destination_dir"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
rsync -a --delete --numeric-ids --relative --delete-excluded \
|
|
||||||
$rsync_hardlink \
|
|
||||||
$VERBOSE $EXCLUDE $SUMMARY $RSYNC_EXTRA \
|
|
||||||
"$source" "$abs_destination_dir"
|
|
||||||
set +x
|
set +x
|
||||||
|
|
||||||
if [ "$?" -ne 0 ]; then
|
if [ "$?" -ne 0 ]; then
|
||||||
echo "rsync reported error $?. The backup may be broken (see rsync errors)"
|
echo "rsync reported error $?. The backup may be broken (see rsync errors)."
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "$($DDATE) Finished backup"
|
echo "$($DDATE) Finished backup"
|
||||||
|
|
Loading…
Reference in a new issue