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>.