backive implementation in Go
Go to file
Marcel Otte e6133848d5 Another golint satisfyer 2022-01-07 11:23:51 +01:00
.github/workflows Removing last goreleaser step 2021-11-01 21:35:44 +01:00
cmd Another golint satisfyer 2022-01-07 11:23:51 +01:00
.gitignore little restructuring 2021-10-27 23:05:36 +02:00
.goreleaser.yml Some small progress... 2021-12-13 23:44:23 +01:00
LICENSE Initial commit 2021-09-29 21:41:53 +02:00
README.md Using slightly changed readme from pybackive for readme.md 2021-11-02 14:47:49 +01:00
backive.go Satisfying GoLint 2022-01-07 11:17:12 +01:00
backive.yml MVP working with proper project structure, RTFM helps. 2022-01-07 10:55:28 +01:00
backup.go Satisfying GoLint 2022-01-07 11:17:12 +01:00
config.go Satisfying GoLint 2022-01-07 11:17:12 +01:00
database.go Satisfying GoLint 2022-01-07 11:17:12 +01:00
device.go Satisfying GoLint 2022-01-07 11:17:12 +01:00
events.go Satisfying GoLint 2022-01-07 11:17:12 +01:00
go.mod MVP working with proper project structure, RTFM helps. 2022-01-07 10:55:28 +01:00
go.sum Some small progress... 2021-12-13 23:44:23 +01:00
testbackup.sh Moved socket location. MVP working (no scheduler...) 2022-01-04 16:11:30 +01:00
utils.go Satisfying GoLint 2022-01-07 11:17:12 +01:00

README.md

backive

The name comes from the combination of backup and archive - silly, I know.

Purpose

I've a long-term backup strategy where I put some labeled hard-disk in a SATA docking station and run a backup routine. When done, this hard-disk goes back into some shelf in my attic or basement. When the time is come again to update the long-term backup the same procedure starts again.

So now there are my backup routines, which are manually currently - and that sucks.

So what this tool or service should do is the following:

  • I am able to configure based on UUIDs of the partitions which devices are allowed for backup
  • I can specify as much backup items as I want, which should include:
    • Backup local and remote data (Linux machine and SSH required)
    • Use the best tool available for the task (rsync, duplicity, whatever)
    • Even be able to "backup" without a target device (choose another path on the system)
    • (optional) Be able to run pre-backup commands (for databases maybe), remote too
  • The service has to be able to automatically detect the presence of a hard-disk, mounting it, running the backup routine and unmounting
  • Good logging about the process

What I currently see as optional:

  • Notification about the finished process

Technical goals

  • systemd service
  • udev rules for notifications about new drives
  • Golang implementation

Current state

In the very beginning...