- Directories synchronization
- Full directories archiving: hourly, daily, weekly, monthly or yearly with auto re-archivation if archive lost or corrupted
- Using native rsync(rsync over SSH supported) and tar(+bzip2) tools from your OS
- No third-party dependencies
- Linux, macOS and *BSD supported
backy <task.json>
{
"destination": "~/Backup",
"archiving_cycle": "monthly",
"multiprocessing": true,
"verbose_log": false,
"directories_to_sync": [
"~/Desktop",
"~/Documents"
],
"directories_to_archive": [
"~/Desktop",
"~/Documents"
],
"exclude": [
".*"
]
}
See scripts
Linux
MacOS
- https://en.wikipedia.org/wiki/Launchd
- https://developer.apple.com/library/archive/documentation/MacOSX/Conceptual/BPSystemStartup/Chapters/ScheduledJobs.html#//apple_ref/doc/uid/10000172i-CH1-SW2
1 2 3
[Primary Directory]->[External Drive]->[Cloud Storage]
| ^ | ^
| | | |
[<=backy========>] [<=Cloud App>===>]
For a complex backup schemes it is highly recommended to split tasks to separate configuration files and time periods. Another tip is to chain your backup actions by backy exit codes.
- 0 - Synchronization and archiving completed successfully
- 1 - No task configuration provided
- 2 - Can't read provided task configuration
- 3 - Synchronization completed with errors
- 4 - Archiving completed with errors
- 5 - Synchronization and archiving completed with errors
go build backy.go