Thank you to everyone who replied -- you've pointed out some useful
design approaches and software.

To summarize:
* OpenBSD doesn't (currently) support any filesystems with embedded
  checksums
* mtree (8) can generate a database of files, modify-times, and checksums
  (and both the man page and my testing verify that it safely handles
  whitespace, non-printing, and/or non-ASCII characters in filesnames)
* There are various programs which can compare a directory tree with
  a separate checksum database, including
    mtree (8)
    bitrot (ports)
    yabitrot (ports)
    restic (ports)
* /lumia/ (https://lumidify.org/doc/lumia/lumia-current.html) can do
  similar things using a *distributed* checksum database (each directory
  contains a checksum of the files in that directory)
* I also ran across /snapraid/ (https://www.snapraid.it/), which does
  some sort of raid 1 setup (I'm not sure of the details)
* I haven't yet found any program to compare checksum databases which
  (a) automatically screens out files which "legitimately" differ between
      the databases because the files were written/created in-between
      the different backups, and/or
  (b) handles "majority voting" among 3 or more checksum databases
      to automatically identify which backup(s) is/are likely corrupted

Thanks again to everyone, ciao,
-- 
-- "Jonathan Thornburg [remove -color to reply]" <dr.j.thornb...@gmail-pink.com>
   on the west coast of Canada
   "The 'S' in 'IoT' stands for 'Security'."
         -- commenter on /Ars Technica/, 2024-05-16

Reply via email to