Simple shell script to backup to Amazon over iSCSI
Extract common logic to a helper function

Notice the similarity in these statements:


echo "$(date "+%Y-%m-%d %k:%M:%S") - Volume mounted" &gt;&gt; "$LOG_FILE"
...
echo "$(date "+%Y-%m-%d %k:%M:%S") - Mounting!" &gt;&gt; "$LOG_FILE"
...
echo "$(date "+%Y-%m-%d %k:%M:%S") - Sync started." &gt;&gt; "$LOG_FILE"



They all have the same pattern:

echo "$(date "+%Y-%m-%d %k:%M:%S") - MESSAGE" &gt;&gt; "$LOG_FILE"


So it's a good candidate to turn into a function:

log() {
    echo "$(date "+%Y-%m-%d %k:%M:%S") - $@" &gt;&gt; "$LOG_FILE"
}


So that you can simplify the uses like this:

log "Volume mounted"
...
log "Mounting!"
...
log "Sync started."


Result of mount

The mount command might fail. When that happens, you might want to abort:

if ! mount -U "$VOL" /mount_folder; then
    log "Unable to Mount"
    exit 1
fi


Pointless touch

This code is completely unnecessary. 
Whether the file existed or not, whether you touch it or not,
it won't affect the rest of the script.
You can safely remove it.


if [ ! -e "$LOG_FILE" ]; then
    touch "$LOG_FILE"
fi



Simplify

This is kind of tedious:


echo "" &gt;&gt; "$LOG_FILE"



You can just drop the "" to simplify:

echo &gt;&gt; "$LOG_FILE"


And, you don't need exit 0 at the end of the script.