# 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=
RSYNC_VERBOSE_FLAGS="-v --stats"
# rsync remote shell to use
-RSYNC_RSH="ssh -c arcfour -o Compression=no -x"
+RSYNC_RSH="ssh"
#_INCLUDE_END_
RSYNC_FLAGS="$RSYNC_FLAGS $RSYNC_VERBOSE_FLAGS"
[ $DEBUG -eq 1 ] &&
V=-v
+exec 3>&2
[ -n "$LOG_FILE" ] &&
- exec 3>&2 &&
exec 1>>"$LOG_FILE" &&
exec 2>>"$LOG_FILE"
source "$host_path/bacaprc" 2>/dev/null
host=`basename "$host_path"`
host_backup_path="$BACKUP_PATH/$host"
+ mkdir -p $host_backup_path
dst="$BACKUP_PATH/$host/$date"
src=`cat "$host_path/paths"`
[ "$host" != "$LOCALHOST" ] &&
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 &&
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" ||
+ $run rm -f $V "$current_link" ||
ret=$(($ret+1))
$run ln -s $V "$date" "$current_link" ||
ret=$(($ret+1))
if [ $ret -ne 0 ]
then
- pout "There were some errors when running the backup on: $ERROR_HOSTS"
pout
- pout "Please take a look at the log: $LOG_FILE"
+ pout "There were some errors when running the backup on: $ERROR_HOSTS"
pout
+ if [ -n "$LOG_FILE" ]
+ then
+ pout "Please take a look at the log: $LOG_FILE"
+ pout
+ fi
fi
exit $ret