]> git.treefish.org Git - backmeupscotty.git/blobdiff - backmeupscotty
Added SSH connection check.
[backmeupscotty.git] / backmeupscotty
index 88a8739105309639b35be92aefb4835e225616ba..9087a17c2a2064fb8a7a031ee783caaed7ed3c52 100644 (file)
@@ -30,9 +30,8 @@ function isIncomplete {
     fi
 }
 
-function isIncompleteOrNthDay {
-    if isIncomplete || \
-       [ $(( ( $(date +%s) / (60*60*24) ) % $BACKUP_RUNEVERYNTHDAY )) -eq 0 ]; 
+function isNthDay {
+    if [ $(( ( $(date +%s) / (60*60*24) ) % $BACKUP_RUNEVERYNTHDAY )) -eq 0 ]; 
     then
        return 0
     else
@@ -40,6 +39,20 @@ function isIncompleteOrNthDay {
     fi 
 }
 
+function latestTooOld {
+    for oldbackup in $(grepbackups); do
+       tstamp=$(echo $oldbackup | cut -d'-' -f1)
+       
+       if [ $(( $(date +%s) - $tstamp )) -lt \
+           $(( $BACKUP_RUNEVERYNTHDAY*24*60*60 )) ]
+       then
+           return 1
+       fi
+    done
+
+    return 0
+}
+
 function scottysync {
     timestamp=$(date +%s)
 
@@ -125,6 +138,10 @@ function cleanup_abort {
     exit
 }
 
+function cleanup {
+    scottyinfo "No cleanup function was defined."
+}
+
 function prepare {
     scottyinfo "No prepare function was defined."
 }
@@ -160,12 +177,23 @@ function backmeupscotty {
                 ;;
        esac
     done
-    
-    if ! isIncompleteOrNthDay; then
-       scottyinfo "This is not the nth day and no incomplete backup exists."
+
+    if (! ssh -q $REMOTE_HOST exit); then
+       scottyerror "Could not establish SSH connection to $REMOTE_HOST!"
+       exit 1
+    fi
+
+    if isNthDay; then
+       scottyinfo "This is the nth day."
+    elif latestTooOld; then
+       scottyinfo "The latest backup is too old."
+    else
+       scottyinfo "No backup has to be done. Exiting."
        exit 0
     fi
 
+    scottyinfo "Performing backup."
+
     trap cleanup_abort EXIT
 
     prepare