summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbhuvi8 <bhuvibhuvanesh@gmail.com>2013-12-17 02:15:43 +0530
committerbhuvi8 <bhuvibhuvanesh@gmail.com>2013-12-17 02:15:43 +0530
commit25ad8f07a6bfc9dddb9d1cd10073d184c0cc399f (patch)
treec014f064d7192eb0bc4e5b28be030d6d1076685b
parent7b9de2b5f55e2c4ccd601cb1ccf28a55249c3b0f (diff)
Added rsync error handling and modified WARN and ERROR functions to print to
stderr
-rwxr-xr-x[-rw-r--r--]rsync_tmbackup.sh17
1 files changed, 12 insertions, 5 deletions
diff --git a/rsync_tmbackup.sh b/rsync_tmbackup.sh
index b2131c9..a32b1eb 100644..100755
--- a/rsync_tmbackup.sh
+++ b/rsync_tmbackup.sh
@@ -7,8 +7,8 @@ APPNAME=$(basename $0 | sed "s/\.sh$//")
# -----------------------------------------------------------------------------
fn_log_info() { echo "$APPNAME: $1"; }
-fn_log_warn() { echo "$APPNAME: [WARNING] $1"; }
-fn_log_error() { echo "$APPNAME: [ERROR] $1"; }
+fn_log_warn() { echo "$APPNAME: [WARNING] $1" 1>&2; }
+fn_log_error() { echo "$APPNAME: [ERROR] $1" 1>&2; }
# -----------------------------------------------------------------------------
# Make sure everything really stops when CTRL+C is pressed
@@ -223,7 +223,7 @@ while : ; do
# TODO: find better way to check for out of space condition without parsing log.
NO_SPACE_LEFT="$(grep "No space left on device (28)\|Result too large (34)" "$LOG_FILE")"
- rm -- "$LOG_FILE"
+ #rm -- "$LOG_FILE"
if [ -n "$NO_SPACE_LEFT" ]; then
fn_log_warn "No space left on device - removing oldest backup and resuming."
@@ -252,7 +252,14 @@ while : ; do
ln -vs -- "$(basename -- "$DEST")" "$DEST_FOLDER/latest"
rm -f -- "$INPROGRESS_FILE"
- # TODO: grep for "^rsync error:.*$" in log
- fn_log_info "Backup completed without errors."
+
+ # -----------------------------------------------------------------------------
+ # Check whether rsync reported any errors
+ # -----------------------------------------------------------------------------
+ if [[ "$(sed -n '/rsync error:/p;/rsync:/p' -- "$LOG_FILE" | wc -l)" -ge 1 ]]; then
+ fn_log_error "rsync encountered error, please check $LOG_FILE for more details."
+ else
+ fn_log_info "Backup completed without errors."
+ fi
exit 0
done