A configurable bupstash wrapper.
Mulkup is a backup script that wraps bupstash.
Features:
-
Backup rotation (hourly, daily, weekly, monthly)
-
Multiple stashes
-
Exclusion lists
Outside of Nix, Stack is the easiest way to install Mulkup.
Check out the repository and run:
stack install
Copy config.example.dhall
to
config.dhall
and open it in a text editor. Edit it to suit your
needs.
To configure the bupstash repository, key, and any other settings available in bupstash itself, set the corresponding environment variables. See the bupstash manual for details.
Execute the program without arguments to perform a backup:
mulkup
A simple configuration file that defines a single stash might look like the following:
let home = "/home/mulk" in
{ host = "mulkinator"
, stashes =
[ { name = "mulk.tar"
, baseDir = home
, tiers =
{ hourly = { keep = 24 }
, daily = { keep = 7 }
, weekly = { keep = 4 }
, monthly = { keep = 12 }
}
, exclusions =
[ "**/.stack-work"
, "**/dist-newstyle"
, "${home}/.cabal/bin"
, "${home}/.cabal/packages"
, "${home}/.ghcup"
, "${home}/.stack"
, "${home}/Library/Caches"
]
}
]
}
You can add as many stashes to the stashes
list as you like.