zfs autosnapshots
This commit is contained in:
@@ -4,15 +4,17 @@
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
service = "holocron_offsite";
|
||||
service = "offsite";
|
||||
cfg = config.holocron.${service};
|
||||
sec = config.sops.secrets;
|
||||
in {
|
||||
options.holocron.ensure_perms = {
|
||||
options.holocron.offsite = {
|
||||
enable = lib.mkEnableOption "enables backup script for holocron fileshare";
|
||||
paths = lib.mkOption {
|
||||
type = with lib.types; listOf str;
|
||||
default = [
|
||||
"/holocron/srv"
|
||||
"/holocron/users"
|
||||
];
|
||||
description = "list of paths to backup";
|
||||
};
|
||||
@@ -39,12 +41,14 @@ in {
|
||||
|
||||
serviceConfig = {
|
||||
Type = "oneshot";
|
||||
User = "root";
|
||||
Group = "archives";
|
||||
};
|
||||
|
||||
script = ''
|
||||
${pkgs.sshpass}/bin/sshpass -f ${sec."lifeboat_rsync".path} \
|
||||
${pkgs.rsync}/bin/rsync -aHAX --partial --numeric-ids --info=progress2,name1,stats2 --delete \
|
||||
-e "ssh -o StrictHostKeyChecking=no" \
|
||||
-e "${pkgs.openssh}/bin/ssh -o StrictHostKeyChecking=no" \
|
||||
${builtins.concatStringsSep " " cfg.paths} \
|
||||
${cfg.offsite_user}@${cfg.offsite_target}::${cfg.offsite_dir}
|
||||
'';
|
||||
|
||||
@@ -27,7 +27,7 @@ in {
|
||||
cert = sec."${service}/lumiose/cert".path;
|
||||
settings = {
|
||||
devices = {
|
||||
"mudkip" = {id = "OV4NUQK-3YHRL5R-SIZGTNL-7VZFFUX-FOJ6NTS-C7ROXR7-I2Q2W7G-QERO7AO";};
|
||||
"piplup" = {id = "OV4NUQK-3YHRL5R-SIZGTNL-7VZFFUX-FOJ6NTS-C7ROXR7-I2Q2W7G-QERO7AO";};
|
||||
"zygarde" = {id = "UYLTF52-VVKUR7F-JN33HQZ-RFNWGL3-JER52LA-GZD2LPJ-QIFEE7K-MNMZRQ5";};
|
||||
"yveltal" = {id = "ZVSQ4WJ-7OICYOZ-3ECES4X-KH37IPB-TKHKUJG-BSEGXVM-AHYY5C3-VKG44AX";};
|
||||
"CEN-IT-07" = {id = "DPYKA4Z-3PX7JB2-FBEOXXX-SC7TLT2-QC5P2IR-SXOPJGX-QO3DMII-5B7UCA4";};
|
||||
@@ -36,7 +36,7 @@ in {
|
||||
folders = {
|
||||
"holocron" = {
|
||||
path = "/holocron/users/blake/holocron";
|
||||
devices = ["mudkip" "zygarde" "CEN-IT-07" "CEN-IT-00007" "yveltal"];
|
||||
devices = ["piplup" "zygarde" "CEN-IT-07" "CEN-IT-00007" "yveltal"];
|
||||
id = "5voxg-c3he2";
|
||||
versioning = {
|
||||
type = "staggered";
|
||||
|
||||
@@ -47,6 +47,14 @@ in {
|
||||
services.zfs = {
|
||||
autoScrub.enable = true;
|
||||
autoScrub.interval = "weekly";
|
||||
autoSnapshot = {
|
||||
enable = true;
|
||||
frequent = 4; # 15 min snapshots
|
||||
hourly = 24; # hourly snapshots
|
||||
daily = 7; # daily snapshots
|
||||
weekly = 4; # weekly snapshots
|
||||
monthly = 12; # monthly snapshots
|
||||
};
|
||||
# email notifs
|
||||
zed = {
|
||||
enableMail = true;
|
||||
|
||||
Reference in New Issue
Block a user