* About rclone_jobber backup script
[[./rclone_jobber.sh][rclone_jobber.sh]] is a shell script to make backups.
It performs backup jobs by calling rclone.
[[https://rclone.org/][Rclone]] is a mature tool and many [[https://github.com/ncw/rclone/wiki/Third-Party-Integrations-with-rclone][third-party tools use rclone]].

The [[file:rclone_jobber_tutorial.org][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 [[https://docs.microsoft.com/en-us/windows/wsl/about][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 [[https://mmozeiko.github.io/RcloneBrowser/][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
[[http://creativecommons.org/licenses/by-nc-sa/4.0/][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://creativecommons.org/publicdomain/zero/1.0/][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.
