diff --git a/README.md b/README.md index 2db44c6..782d1b5 100644 --- a/README.md +++ b/README.md @@ -114,15 +114,20 @@ docker run --rm -v /srv:/srv:ro -v /var/lib/sfdupes:/var/lib/sfdupes \ Run `scan` as root, so that it can read every file. `scan` warns about a directory it cannot read, and about a new or changed file it cannot read. It skips the path and deletes the records at or below it (see "Rules for the -walk"). As the file `/etc/cron.d/sfdupes`: +walk"). + +An unmounted disk leaves its mount point empty, so `scan` deletes every record +under it, and the next scan reads every file on the disk again. Test the mount +point of each disk at or below `/srv` with its own `mountpoint -q`, joined with +`&&`, and test `/srv` only when it is one. As the file `/etc/cron.d/sfdupes`: ``` -30 3 * * * root /usr/local/bin/sfdupes scan /srv 2>>/var/log/sfdupes.log || tail -n 3 /var/log/sfdupes.log +30 3 * * * root if mountpoint -q /srv; then /usr/local/bin/sfdupes scan /srv 2>>/var/log/sfdupes.log || tail -n 3 /var/log/sfdupes.log; else echo "a disk is not mounted; scan of /srv skipped"; fi ``` - The first scan creates `/var/lib/sfdupes/db.sqlite` and its directory. To keep - the database elsewhere, put `SFDUPES_DATABASE=/path/to/db.sqlite` before the - command on the same line. + the database elsewhere, put `SFDUPES_DATABASE=/path/to/db.sqlite` directly + before `/usr/local/bin/sfdupes`. - `scan` writes nothing to stdout. Its stderr, appended here to `/var/log/sfdupes.log`, holds: - one line naming the database; diff --git a/TODO.md b/TODO.md index 9b7d422..13e2823 100644 --- a/TODO.md +++ b/TODO.md @@ -29,6 +29,9 @@ Newest first. An entry ends with its date and its issue or branch, where those are known. +- `README.md` says what a disk that is not mounted does to the database. The + daily `cron` line runs `scan` only when `mountpoint` reports `/srv` as mounted + (2026-11-11, https://git.eeqj.de/sneak/sfdupes/issues/175) - The help of `sfdupes` and of `scan` names the database, its default path and `SFDUPES_DATABASE`. The help of `report` and `trees` lists the columns, the order of the rows and the escapes. The help of `info` lists its lines. The