]> git.treefish.org Git - backmeupscotty.git/blobdiff - backmeupscotty
fixed timestamping
[backmeupscotty.git] / backmeupscotty
index e0689a042a60240b16f3d0cfac77a6e0e5c52c4b..1daddb8dbec5f14bb61fc812c63f0a7ab7a4ffed 100644 (file)
@@ -6,16 +6,28 @@ ARCHIVE_KEEPNBACKUPS=30
 ARCHIVE_KEEPNDAYS=30
 BACKUP_RUNEVERYNTHDAY=1
 
-function upperme {
-    echo $(basename $0) | tr '[:lower:]' '[:upper:]'
+_ERROR_ENCOUNTERED=0
+_UPPERME=$(echo $(basename $0) | tr '[:lower:]' '[:upper:]')
+
+function timestamp {
+    echo $(date +"[%y-%m-%d %H:%M:%S]")
+}
+
+function scottyline {
+    echo $(timestamp) $_UPPERME: $@
 }
 
 function scottyinfo {
-    echo $(upperme): $@ 
+    if ($_ERROR_ENCOUNTERED -eq 0); then
+       scottyline $@
+    else
+       scottyline $@ >&2
+    fi
 }
 
 function scottyerror {
-    echo $(upperme): $@ >&2 
+    scottyline $@ >&2
+    _ERROR_ENCOUNTERED=1
 }
 
 function ssh255 {
@@ -110,6 +122,8 @@ function scottysync {
        scottyinfo "Timestamping completed backup and linking to current backup."
        ssh255 $REMOTE_HOST \
            "mv $dir_incomplete $dir_timestamped && rm -f $dir_current && ln -s $(basename $dir_timestamped) $dir_current"
+    else
+       scottyerror "Rsync failed."
     fi
 
     while [ $(grepbackups | wc -l) -gt $ARCHIVE_KEEPNBACKUPS ]; do
@@ -125,6 +139,12 @@ function scottysync {
     done
 }
 
+function deleteLock {
+    if ! rmdir /var/lock/$(basename $0); then
+       scottyerror "Could not delete lockfile /tmp/$(basename $0).lock!"
+    fi
+}
+
 function cleanup_abort {
     scottyerror "Caught exit signal! Cleaning up."
 
@@ -135,6 +155,8 @@ function cleanup_abort {
        kill $(jobs -p)
     fi
 
+    deleteLock
+
     exit
 }
 
@@ -146,6 +168,11 @@ function prepare {
     scottyinfo "No prepare function was defined."
 }
 
+function cleanup_normal {
+    cleanup
+    deleteLock
+}
+
 function printhelp {
     cat <<EOF
 Usage: $(basename $0) [OPTION]...
@@ -191,14 +218,14 @@ function backmeupscotty {
     prepare
     scottysync
 
-    trap cleanup EXIT
+    trap cleanup_normal EXIT
 
     exit 0
 }
 
-exec 200>/var/run/$(basename $0).pid
-if ! flock -n 200; then
+if ! mkdir /var/lock/$(basename $0); then
     scottyerror "Another instance of $(basename $0) is still running!"
     exit 1
+else
+    trap deleteLock EXIT
 fi
-echo $$ 1>&200