[{"data":1,"prerenderedAt":533},["ShallowReactive",2],{"navigation":3,"\u002Fusage\u002Frunning-jobs":94,"\u002Fusage\u002Frunning-jobs-surround":528},[4,16,38,56,70,80],{"title":5,"path":6,"stem":7,"children":8,"icon":15},"Getting Started","\u002Fgetting-started","1.getting-started\u002F1.index",[9,11],{"title":10,"path":6,"stem":7},"What is fsbackup?",{"title":12,"path":13,"stem":14},"Requirements & hardware","\u002Fgetting-started\u002Frequirements","1.getting-started\u002F2.requirements","i-lucide-rocket",{"title":17,"icon":18,"path":19,"stem":20,"children":21,"page":37},"Installation","i-lucide-package","\u002Finstallation","2.installation",[22,26,30,33],{"title":23,"path":24,"stem":25},"Quick start","\u002Finstallation\u002Fquickstart","2.installation\u002F1.quickstart",{"title":27,"path":28,"stem":29},"ZFS pool setup","\u002Finstallation\u002Fzfs-pool","2.installation\u002F2.zfs-pool",{"title":17,"path":31,"stem":32},"\u002Finstallation\u002Fbare-metal","2.installation\u002F3.bare-metal",{"title":34,"path":35,"stem":36},"Adding remote hosts","\u002Finstallation\u002Fadding-hosts","2.installation\u002F4.adding-hosts",false,{"title":39,"icon":40,"path":41,"stem":42,"children":43,"page":37},"Configuration","i-lucide-sliders","\u002Fconfiguration","3.configuration",[44,48,52],{"title":45,"path":46,"stem":47},"fsbackup.conf","\u002Fconfiguration\u002Ffsbackup-conf","3.configuration\u002F1.fsbackup-conf",{"title":49,"path":50,"stem":51},"targets.yml","\u002Fconfiguration\u002Ftargets","3.configuration\u002F2.targets",{"title":53,"path":54,"stem":55},"Scheduling","\u002Fconfiguration\u002Fscheduling","3.configuration\u002F3.scheduling",{"title":57,"icon":58,"path":59,"stem":60,"children":61,"page":37},"Usage","i-lucide-play","\u002Fusage","4.usage",[62,66],{"title":63,"path":64,"stem":65},"Web UI","\u002Fusage\u002Fweb-ui","4.usage\u002F1.web-ui",{"title":67,"path":68,"stem":69},"Running jobs manually","\u002Fusage\u002Frunning-jobs","4.usage\u002F2.running-jobs",{"title":71,"icon":72,"path":73,"stem":74,"children":75,"page":37},"Restore","i-lucide-history","\u002Frestore","5.restore",[76],{"title":77,"path":78,"stem":79},"Restoring data","\u002Frestore\u002Frestore","5.restore\u002F1.restore",{"title":81,"icon":82,"path":83,"stem":84,"children":85,"page":37},"Reference","i-lucide-book-open","\u002Freference","6.reference",[86,90],{"title":87,"path":88,"stem":89},"Script reference","\u002Freference\u002Fscripts","6.reference\u002F1.scripts",{"title":91,"path":92,"stem":93},"Prometheus metrics","\u002Freference\u002Fmetrics","6.reference\u002F2.metrics",{"id":95,"title":67,"body":96,"description":522,"extension":523,"links":524,"meta":525,"navigation":412,"path":68,"seo":526,"stem":69,"__hash__":527},"docs\u002F4.usage\u002F2.running-jobs.md",{"type":97,"value":98,"toc":510},"minimark",[99,103,115,120,123,173,180,184,189,216,220,241,245,272,276,279,315,319,322,351,355,371,375,506],[100,101,102],"p",{},"All scripts can be run manually from the command line. This is useful for testing, re-running failed jobs, or running jobs outside of the scheduled window.",[100,104,105,106,110,111,114],{},"Scripts run as the ",[107,108,109],"code",{},"fsbackup"," user. Use ",[107,112,113],{},"sudo -u fsbackup"," or the web UI's Run Jobs page.",[116,117,119],"h2",{"id":118},"doctor","Doctor",[100,121,122],{},"Checks SSH reachability and source path existence for all targets in a class.",[124,125,130],"pre",{"className":126,"code":127,"language":128,"meta":129,"style":129},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","sudo -u fsbackup \u002Fopt\u002Ffsbackup\u002Fbin\u002Ffs-doctor.sh --class class1\nsudo -u fsbackup \u002Fopt\u002Ffsbackup\u002Fbin\u002Ffs-doctor.sh --class class2\n","bash","",[107,131,132,157],{"__ignoreMap":129},[133,134,137,141,145,148,151,154],"span",{"class":135,"line":136},"line",1,[133,138,140],{"class":139},"sBMFI","sudo",[133,142,144],{"class":143},"sfazB"," -u",[133,146,147],{"class":143}," fsbackup",[133,149,150],{"class":143}," \u002Fopt\u002Ffsbackup\u002Fbin\u002Ffs-doctor.sh",[133,152,153],{"class":143}," --class",[133,155,156],{"class":143}," class1\n",[133,158,160,162,164,166,168,170],{"class":135,"line":159},2,[133,161,140],{"class":139},[133,163,144],{"class":143},[133,165,147],{"class":143},[133,167,150],{"class":143},[133,169,153],{"class":143},[133,171,172],{"class":143}," class2\n",[100,174,175,176,179],{},"Any ",[107,177,178],{},"FAIL"," must be resolved before the runner will succeed for that target.",[116,181,183],{"id":182},"snapshot-runner","Snapshot runner",[185,186,188],"h3",{"id":187},"dry-run-safe-no-changes","Dry run (safe, no changes)",[124,190,192],{"className":126,"code":191,"language":128,"meta":129,"style":129},"sudo -u fsbackup \u002Fopt\u002Ffsbackup\u002Fbin\u002Ffs-runner.sh daily --class class1 --dry-run\n",[107,193,194],{"__ignoreMap":129},[133,195,196,198,200,202,205,208,210,213],{"class":135,"line":136},[133,197,140],{"class":139},[133,199,144],{"class":143},[133,201,147],{"class":143},[133,203,204],{"class":143}," \u002Fopt\u002Ffsbackup\u002Fbin\u002Ffs-runner.sh",[133,206,207],{"class":143}," daily",[133,209,153],{"class":143},[133,211,212],{"class":143}," class1",[133,214,215],{"class":143}," --dry-run\n",[185,217,219],{"id":218},"run-for-real","Run for real",[124,221,223],{"className":126,"code":222,"language":128,"meta":129,"style":129},"sudo -u fsbackup \u002Fopt\u002Ffsbackup\u002Fbin\u002Ffs-runner.sh daily --class class1\n",[107,224,225],{"__ignoreMap":129},[133,226,227,229,231,233,235,237,239],{"class":135,"line":136},[133,228,140],{"class":139},[133,230,144],{"class":143},[133,232,147],{"class":143},[133,234,204],{"class":143},[133,236,207],{"class":143},[133,238,153],{"class":143},[133,240,156],{"class":143},[185,242,244],{"id":243},"run-a-single-target","Run a single target",[124,246,248],{"className":126,"code":247,"language":128,"meta":129,"style":129},"sudo -u fsbackup \u002Fopt\u002Ffsbackup\u002Fbin\u002Ffs-runner.sh daily --class class1 --target myapp.data\n",[107,249,250],{"__ignoreMap":129},[133,251,252,254,256,258,260,262,264,266,269],{"class":135,"line":136},[133,253,140],{"class":139},[133,255,144],{"class":143},[133,257,147],{"class":143},[133,259,204],{"class":143},[133,261,207],{"class":143},[133,263,153],{"class":143},[133,265,212],{"class":143},[133,267,268],{"class":143}," --target",[133,270,271],{"class":143}," myapp.data\n",[185,273,275],{"id":274},"force-re-sync-an-existing-snapshot","Force re-sync an existing snapshot",[100,277,278],{},"By default, unchanged files are skipped. To force a full re-sync:",[124,280,282],{"className":126,"code":281,"language":128,"meta":129,"style":129},"sudo -u fsbackup \u002Fopt\u002Ffsbackup\u002Fbin\u002Ffs-runner.sh daily --class class1 \\\n  --target myapp.data --replace-existing\n",[107,283,284,304],{"__ignoreMap":129},[133,285,286,288,290,292,294,296,298,300],{"class":135,"line":136},[133,287,140],{"class":139},[133,289,144],{"class":143},[133,291,147],{"class":143},[133,293,204],{"class":143},[133,295,207],{"class":143},[133,297,153],{"class":143},[133,299,212],{"class":143},[133,301,303],{"class":302},"sTEyZ"," \\\n",[133,305,306,309,312],{"class":135,"line":159},[133,307,308],{"class":143},"  --target",[133,310,311],{"class":143}," myapp.data",[133,313,314],{"class":143}," --replace-existing\n",[116,316,318],{"id":317},"retention","Retention",[100,320,321],{},"Prunes ZFS snapshots beyond the configured KEEP_* counts:",[124,323,325],{"className":126,"code":324,"language":128,"meta":129,"style":129},"sudo -u fsbackup \u002Fopt\u002Ffsbackup\u002Fbin\u002Ffs-retention.sh --dry-run\nsudo -u fsbackup \u002Fopt\u002Ffsbackup\u002Fbin\u002Ffs-retention.sh\n",[107,326,327,340],{"__ignoreMap":129},[133,328,329,331,333,335,338],{"class":135,"line":136},[133,330,140],{"class":139},[133,332,144],{"class":143},[133,334,147],{"class":143},[133,336,337],{"class":143}," \u002Fopt\u002Ffsbackup\u002Fbin\u002Ffs-retention.sh",[133,339,215],{"class":143},[133,341,342,344,346,348],{"class":135,"line":159},[133,343,140],{"class":139},[133,345,144],{"class":143},[133,347,147],{"class":143},[133,349,350],{"class":143}," \u002Fopt\u002Ffsbackup\u002Fbin\u002Ffs-retention.sh\n",[116,352,354],{"id":353},"s3-export","S3 export",[124,356,358],{"className":126,"code":357,"language":128,"meta":129,"style":129},"sudo -u fsbackup \u002Fopt\u002Ffsbackup\u002Fs3\u002Ffs-export-s3.sh\n",[107,359,360],{"__ignoreMap":129},[133,361,362,364,366,368],{"class":135,"line":136},[133,363,140],{"class":139},[133,365,144],{"class":143},[133,367,147],{"class":143},[133,369,370],{"class":143}," \u002Fopt\u002Ffsbackup\u002Fs3\u002Ffs-export-s3.sh\n",[116,372,374],{"id":373},"checking-logs","Checking logs",[124,376,378],{"className":126,"code":377,"language":128,"meta":129,"style":129},"# Per-class backup logs\ntail -f \u002Fvar\u002Flib\u002Ffsbackup\u002Flog\u002Fbackup-class1.log\ntail -f \u002Fvar\u002Flib\u002Ffsbackup\u002Flog\u002Fbackup-class2.log\n\n# S3 export log\ntail -f \u002Fvar\u002Flib\u002Ffsbackup\u002Flog\u002Fs3-export.log\n\n# Web UI log\nsudo journalctl -u fsbackup-web -f\n\n# Timer run output (journal)\nsudo journalctl -u fsbackup-runner-daily@class1.service -f\nsudo journalctl -u fsbackup-s3-export.service\nsudo journalctl -u fsbackup-retention.service\n",[107,379,380,386,397,407,414,420,430,435,441,457,462,468,482,494],{"__ignoreMap":129},[133,381,382],{"class":135,"line":136},[133,383,385],{"class":384},"sHwdD","# Per-class backup logs\n",[133,387,388,391,394],{"class":135,"line":159},[133,389,390],{"class":139},"tail",[133,392,393],{"class":143}," -f",[133,395,396],{"class":143}," \u002Fvar\u002Flib\u002Ffsbackup\u002Flog\u002Fbackup-class1.log\n",[133,398,400,402,404],{"class":135,"line":399},3,[133,401,390],{"class":139},[133,403,393],{"class":143},[133,405,406],{"class":143}," \u002Fvar\u002Flib\u002Ffsbackup\u002Flog\u002Fbackup-class2.log\n",[133,408,410],{"class":135,"line":409},4,[133,411,413],{"emptyLinePlaceholder":412},true,"\n",[133,415,417],{"class":135,"line":416},5,[133,418,419],{"class":384},"# S3 export log\n",[133,421,423,425,427],{"class":135,"line":422},6,[133,424,390],{"class":139},[133,426,393],{"class":143},[133,428,429],{"class":143}," \u002Fvar\u002Flib\u002Ffsbackup\u002Flog\u002Fs3-export.log\n",[133,431,433],{"class":135,"line":432},7,[133,434,413],{"emptyLinePlaceholder":412},[133,436,438],{"class":135,"line":437},8,[133,439,440],{"class":384},"# Web UI log\n",[133,442,444,446,449,451,454],{"class":135,"line":443},9,[133,445,140],{"class":139},[133,447,448],{"class":143}," journalctl",[133,450,144],{"class":143},[133,452,453],{"class":143}," fsbackup-web",[133,455,456],{"class":143}," -f\n",[133,458,460],{"class":135,"line":459},10,[133,461,413],{"emptyLinePlaceholder":412},[133,463,465],{"class":135,"line":464},11,[133,466,467],{"class":384},"# Timer run output (journal)\n",[133,469,471,473,475,477,480],{"class":135,"line":470},12,[133,472,140],{"class":139},[133,474,448],{"class":143},[133,476,144],{"class":143},[133,478,479],{"class":143}," fsbackup-runner-daily@class1.service",[133,481,456],{"class":143},[133,483,485,487,489,491],{"class":135,"line":484},13,[133,486,140],{"class":139},[133,488,448],{"class":143},[133,490,144],{"class":143},[133,492,493],{"class":143}," fsbackup-s3-export.service\n",[133,495,497,499,501,503],{"class":135,"line":496},14,[133,498,140],{"class":139},[133,500,448],{"class":143},[133,502,144],{"class":143},[133,504,505],{"class":143}," fsbackup-retention.service\n",[507,508,509],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}",{"title":129,"searchDepth":136,"depth":159,"links":511},[512,513,519,520,521],{"id":118,"depth":159,"text":119},{"id":182,"depth":159,"text":183,"children":514},[515,516,517,518],{"id":187,"depth":399,"text":188},{"id":218,"depth":399,"text":219},{"id":243,"depth":399,"text":244},{"id":274,"depth":399,"text":275},{"id":317,"depth":159,"text":318},{"id":353,"depth":159,"text":354},{"id":373,"depth":159,"text":374},"How to run fsbackup scripts manually from the command line or web UI.","md",null,{},{"title":67,"description":522},"aF1BsuDBw1dj3ii8MD24HWU0fRsdM_lKAJqkBBHb9uA",[529,531],{"title":63,"path":64,"stem":65,"description":530,"children":-1},"Using the fsbackup web interface to monitor backups, browse snapshots, and run jobs.",{"title":77,"path":78,"stem":79,"description":532,"children":-1},"How to restore files from local ZFS snapshots or S3 archives using fs-restore.sh or manually.",1775923865773]