Provided by: bup-doc_0.25-1_all bug

NAME

       bup-fsck - verify or repair a bup repository

SYNOPSIS

       bup fsck [-r][-g] [-v][\--quick] [-j jobs][\--par2-ok] [--disable-par2][filenames...]

DESCRIPTION

       bup fsck is a tool for validating bup repositories in the same way that git fsck validates
       git repositories.

       It can also generate and/or use "recovery blocks" using the par2(1) tool (if you  have  it
       installed).   This  allows  you  to  recover from damaged blocks covering up to 5% of your
       .pack files.

       In a normal backup system, damaged blocks are less important, because there  tends  to  be
       enough  data  duplicated  between  backup  sets  that  a  single  damaged  backup  set  is
       non-critical.  In a deduplicating backup system like bup, however, no block is ever stored
       more  than  once,  even  if  it  is used in every single backup.  If that block were to be
       unrecoverable, all your backup sets would be damaged at once.  Thus, it's important to  be
       able to verify the integrity of your backups and recover from disk errors if they occur.

       WARNING:  bup  fsck's recovery features are not available unless you have the free par2(1)
       package installed on your bup server.

       WARNING: bup fsck obviously cannot recover from a complete disk failure.  If your  backups
       are  important,  you  need  to  carefully  consider  redundancy  (such  as  using RAID for
       multi-disk redundancy, or making off-site backups for site redundancy).

OPTIONS

       -r, --repair
              attempt to repair any damaged packs  using  existing  recovery  blocks.   (Requires
              par2(1).)

       -g, --generate
              generate  recovery  blocks  for  any packs that don't already have them.  (Requires
              par2(1).)

       -v, --verbose
              increase verbosity (can be used more than once).

       --quick
              don't run a full git verify-pack on each pack file; instead just  check  the  final
              checksum.   This  can  cause  a  significant  speedup  with  no obvious decrease in
              reliability.  However, you may want to avoid this option if you're  paranoid.   Has
              no effect on packs that already have recovery information.

       -j, --jobs=numjobs
              maximum  number of pack verifications to run at a time.  The optimal value for this
              option depends how fast your CPU can verify packs vs.  your  disk  throughput.   If
              you  run  too  many  jobs at once, your disk will get saturated by seeking back and
              forth between files and performance will actually decrease, even if numjobs is less
              than  the  number of CPU cores on your system.  You can experiment with this option
              to find the optimal value.

       --par2-ok
              immediately return 0 if par2(1) is installed and working, or 1 otherwise.   Do  not
              actually check anything.

       --disable-par2
              pretend that par2(1) is not installed, and ignore all recovery blocks.

EXAMPLE

              # generate recovery blocks for all packs that don't
              # have them
              bup fsck -g

              # generate recovery blocks for a particular pack
              bup fsck -g ~/.bup/objects/pack/153a1420cb1c8*.pack

              # check all packs for correctness (can be very slow!)
              bup fsck

              # check all packs for correctness and recover any
              # damaged ones
              bup fsck -r

              # check a particular pack for correctness and recover
              # it if damaged
              bup fsck -r ~/.bup/objects/pack/153a1420cb1c8*.pack

              # check if recovery blocks are available on this system
              if bup fsck --par2-ok; then
                  echo "par2 is ok"
              fi

SEE ALSO

       bup-damage(1), fsck(1), git-fsck(1)

BUP

       Part of the bup(1) suite.

AUTHORS

       Avery Pennarun <apenwarr@gmail.com>.