/rclone_jobber

An rclone script to perform backups

Primary LanguageShell

About rclone_jobber backup script

rclone_jobber.sh is a shell script to make backups. It performs backup jobs by calling rclone. Rclone is a mature tool and many third-party tools use rclone.

The rclone jobber tutorial includes backup-job and restore-job examples for a home computer.

rclone_jobber.sh features:

  • Tested on Linux, and should also run on macOS and Windows 10 wsl
  • Options to archive old backup files in their original hierarchy
  • Can backup to multiple destinations for redundant backups (one backup job per destination)
  • Aborts if the backup job is already running (maybe the previous run didn’t finish)
  • Pop-up for error conditions
  • Option for a cron-monitoring service
  • Logging
  • POSIX compliant shell script so it is easy to customize
  • Free (open source Creative Commons Zero license)

Rclone features:

  • Back up data from local machine
  • Back up data from a cloud provider (Google Drive for example)
  • Back up to local storage
  • Back up to remote cloud storage (safe from local disaster)
  • Over 30 cloud-storage providers to choose from (so you’re never locked into a provider)
  • Optional encryption (Crypt)
  • MD5/SHA1 hashes checked at all times for file integrity
  • Timestamps preserved on files
  • Filter rules (to exclude or include files)
  • rsync-like algorithm and interface
  • Sync (one way) mode to make a directory identical
  • Partial syncs supported on a whole file basis
  • Free (open source MIT license)

Both rclone and rclone_jobber.sh are command line tools. If you prefer a GUI, checkout RcloneBrowser.

Example job scripts

rclone_jobber.sh is already developed, documented, and tested. Only the backup-job files need to be written.

Example minimal backup-job script for rclone_jobber:

#!/usr/bin/env sh

source="$HOME"
dest="$usb/rclone_jobber_backup"

$rclone_jobber/rclone_jobber.sh "$source" "$dest"

Example backup job with all the rclone_jobber.sh arguments defined:

#!/usr/bin/env sh

source="$HOME"
dest="$usb/rclone_jobber_backup"
move_old_files_to="dated_files"
options="--filter-from=$rclone_jobber/filter_rules --checksum --dry-run"
monitoring_URL="https://monitor.io/12345678-1234-1234-1234-1234567890ab"

$rclone_jobber/rclone_jobber.sh "$source" "$dest" "$move_old_files_to" "$options" "$(basename $0)" "$monitoring_URL"

Contact

Please tell me if something is wrong, you’re helping me improve this project.

Submit issues to https://github.com/wolfv6/rclone_jobber/issues. Pull requests are welcome.

Licenses

https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png
The content of the tutorial, including associated setup_test_data_directory.sh, are licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 license.

http://i.creativecommons.org/p/zero/1.0/88x31.png
rclone_jobber.sh source code, including associated job files, filter_rules file, and test_suite, are licensed under the Creative Commons Zero 1.0 license.

Rclone_jobber is not affiliated with rclone.