From 663ee4b88384d6cc83d057e6c45f842a1c542191 Mon Sep 17 00:00:00 2001 From: timeshifter Date: Thu, 25 Nov 2021 20:02:09 +0100 Subject: [PATCH] add: scrub --- zfs-backup.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/zfs-backup.py b/zfs-backup.py index 8ef5c69..073c07d 100755 --- a/zfs-backup.py +++ b/zfs-backup.py @@ -29,8 +29,10 @@ def main(): external_pool = ExternalPool.find_from_dict(config.backup_pools) external_pool.import_() try: + external_pool.scrub() local_pool.backup_to(external_pool) clean_old_snapshots(external_pool) + external_pool.scrub() finally: external_pool.export() @@ -115,6 +117,12 @@ class ZFS: stdin=sender.stdout, ) + @staticmethod + def scrub(pool: str, *, wait_for_finish=True) -> None: + run_command([config.ZPOOL, "scrub", pool]) + if wait_for_finish: + run_command([config.ZPOOL, "wait", "-t", "scrub", pool]) + class Disk: def __init__(self, uuid: UUID, name: str): @@ -211,6 +219,9 @@ class ExternalPool(Pool): def _export_pool(self) -> None: ZFS.export_pool(self.name) + def scrub(self) -> None: + ZFS.scrub(self.name) + @classmethod def find_from_dict(cls, backup_pools: dict[str, UUID]) -> ExternalPool: present_uuids = [item.name for item in DISK_BY_UUID.iterdir()]