mikedhanson / Rclone

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Backup Schedule

Items backed up

  • Appdata
  • Flash
  • Network
  • Veeam
Directory Local Offsite
Appdata Weekly (sun 2am) Weekly
Libvirt Weekly (sun 2am) Weekly
Flash Weekly (sun 2am) Weekly
Network Weekly
Veeam MWF Weekly
Manual MWF Weekly

Script Example

#!/bin/bash

BACKUP_NAME="backupDir"                   # Folder under UNRAID_PATH which will be backed up

UNRAID_PATH=/mnt/user/backup            # Path to unraid which is the root backup 
BACKUP_PATH=$UNRAID_PATH/$BACKUP_NAME   # Full path to be backed up
LOGFILE=$UNRAID_PATH/logs/rclone-$BACKUP_NAME-$(date +"%Y-%m-%d").log 
callNotify=/usr/local/emhttp/webGui/scripts/notify
LOG_LEVEL='INFO'
Rclone_Remote='encrypted'

# Check if script is running
#FLAG="$UNRAID_PATH/logs/$BACKUP_NAME-running"
FLAG="$UNRAID_PATH/logs/rclone.flag"

if [[ -f $FLAG ]]; then
    echo "$(date "+%d.%m.%Y %T") INFO: Exiting script as already running."
    CURRENTLY_RUNNING=$(cut -d "-" -f2- <<< $(echo $(cat $FLAG)))
    $callNotify -i "warning" -s "Rclone - $BACKUP_NAME Attempted to run" -d "$CURRENTLY_RUNNING is already running. $(echo $(cat $FLAG))" 
    exit
else
    echo "$(date "+%d.%m.%Y %T") INFO: Script not running - proceeding."
    echo "$(date "+%d.%m.%Y %T")-$BACKUP_NAME" >> $FLAG
fi

rclone sync $BACKUP_PATH $Rclone_Remote:/$BACKUP_NAME --bwlimit "08:00,250 22:00,off" --log-level $LOG_LEVEL --log-file=$LOGFILE #--progress #--dry-run

# Cleanup flag.
if [[ -f $FLAG ]]; then
    rm $FLAG
fi

DETAILS=$(echo $(cat $LOGFILE | tail -4))

# Send notification 
if [ $? = 0 ] ; then
    $callNotify -i "normal" -s "Rclone - $BACKUP_NAME backup Completed!" -d "Details: $DETAILS Full log can be found here: $LOGFILE" 
else 
    $callNotify -i "alert" -s "Rclone - $BACKUP_NAME backup Failed! :("  -d "Details: $DETAILS Full log can be found here: $LOGFILE" 
fi

About


Languages

Language:Shell 100.0%