X-Git-Url: https://git.llucax.com/software/bacap.git/blobdiff_plain/93cf7cf99a72cc9a6af670e846b479c37e07c2ac..89ef59a9de51362ee6fa45fdda42a195e2aef4a0:/bacap diff --git a/bacap b/bacap index f72b6fd..9de8dc2 100755 --- a/bacap +++ b/bacap @@ -12,6 +12,9 @@ DEBUG=0 # Don't actually do anything, just print the commands DRY_RUN=0 +# Force synchronization, even when the target already exist +FORCE_SYNC=0 + # Log file (if empty, print to stdout/err) LOG_FILE= @@ -38,7 +41,7 @@ RSYNC_FLAGS="-aAXHx --numeric-ids --delete" RSYNC_VERBOSE_FLAGS="-v --stats" # rsync remote shell to use -RSYNC_RSH="ssh -c arcfour -o Compression=no -x" +RSYNC_RSH="ssh" #_INCLUDE_END_ @@ -116,7 +119,7 @@ do plog "Destination: $dst" plog "Last: $current_dir" plog - [ -d "$dst" ] && + [ -d "$dst" ] && [ "$FORCE_SYNC" -ne 1 ] && perror "$dst already exists, skipping..." && continue [ "$PING_CHECK" -eq 1 ] && ! ping_host $host && @@ -126,11 +129,9 @@ do extra_flags="--exclude-from=$exclude --delete-excluded" [ -r "$include" ] && extra_flags="$extra_flags --include-from=$include" - plog "Rotating backup..." - $run cp -al $V "$current_dir" "$dst" || - ret=$(($ret+1)) plog "Running rsync..." - $run rsync $RSYNC_FLAGS $extra_flags $src "$dst/" || + $run rsync $RSYNC_FLAGS $extra_flags \ + --link-dest="$current_dir" $src "$dst/" || ret=$(($ret+1)) plog "Moving current..." $run rm $V "$current_link" ||