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.
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"
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.
The content of the tutorial, including associated setup_test_data_directory.sh, are licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 license.
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.