]> git.llucax.com Git - software/bacap.git/blobdiff - bacap
Add example to view the differences between two backups
[software/bacap.git] / bacap
diff --git a/bacap b/bacap
index dd83d2ea489416b7898ff99517c2c3875851b2c8..d107b1dadffcfe6c6ddebff21b2da3c594581e2d 100755 (executable)
--- a/bacap
+++ b/bacap
@@ -19,7 +19,7 @@ LOG_FILE=
 CONFIG_PATH=/etc/bacap/hosts
 
 # Name of the local host (so no ssh would be used with this host)
-LOCALHOST=localhost
+LOCALHOST=$HOSTNAME
 
 # Where to put the backups
 BACKUP_PATH=/backup
@@ -90,6 +90,7 @@ plog "========================================================================="
 ret=0
 for host_path in "$CONFIG_PATH"/*
 do
+       saved_ret=$ret
        # Load default config and override config if correspond
        load_config
        source "$host_path/bacaprc" 2>/dev/null
@@ -100,13 +101,15 @@ do
        [ "$host" != "$LOCALHOST" ] &&
                src=`awk "{print \"$host:\"\\$1}" "$host_path/paths"`
        exclude="$host_path/excludes"
+       include="$host_path/includes"
        current_link="$host_backup_path/current"
        current_dir="$host_backup_path/`readlink \"$current_link\"`"
        exclude_flags=
+       include_flags=
        plog "-----------------------------------------------------------------"
        plog "Backup for host $host"
        plog "-----------------------------------------------------------------"
-       plog "Source:      "$src
+       plog "Source:      $src"
        plog "Destination: $dst"
        plog "Last:        $current_dir"
        plog
@@ -117,18 +120,24 @@ do
                perror "$host is down, skipping..." &&
                continue
        [ -r "$exclude" ] &&
-               exclude_flags=" --exclude-from=$exclude --delete-excluded"
+               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 $exclude_flags $src "$dst/" ||
+       $run rsync $RSYNC_FLAGS $extra_flags $src "$dst/" ||
                ret=$(($ret+1))
        plog "Moving current..."
        $run rm $V "$current_link" ||
                ret=$(($ret+1))
        $run ln -s $V "$date" "$current_link" ||
                ret=$(($ret+1))
+       if [ $ret -ne $saved_ret ]
+       then
+               ERROR_HOSTS="$ERROR_HOSTS $host"
+       fi
 done
 
 plog "========================================================================="
@@ -137,7 +146,7 @@ plog "========================================================================="
 
 if [ $ret -ne 0 ]
 then
-       pout 'There were some errors when running the backup.'
+       pout "There were some errors when running the backup on: $ERROR_HOSTS"
        pout
        pout "Please take a look at the log: $LOG_FILE"
        pout