README: guard the daily cron scan against an unmounted disk (closes #175)
check / check (push) Canceled after 0s
check / check (push) Canceled after 0s
A disk that is not mounted leaves its mount point an empty directory. scan then deletes every record under it, and the next scan reads every file again. The README now says so, and its cron line runs scan only when mountpoint reports /srv as mounted. Model: opus-5-5
This commit is contained in:
1 parent
6c529fcc6d
commit
d9e0a37b14
2 files changed
+13
-2
No files matched your search
@@ -112,10 +112,18 @@ docker run --rm -v /var/lib/sfdupes:/var/lib/sfdupes sfdupes report > dupes.tsv
|
||||
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").
|
||||
|
||||
A disk that is not mounted leaves an empty directory at its mount point. `scan`
|
||||
finds no files there, deletes every record under it and exits 0. The next scan
|
||||
with the disk mounted reads every file on it again. So the line below runs
|
||||
`scan` only when `mountpoint` reports `/srv` as mounted. Otherwise it prints
|
||||
`a disk is not mounted; scan of /srv skipped`, which `cron` mails, and scans
|
||||
nothing. For each other disk mounted below `/srv`, add `&& mountpoint -q` and
|
||||
its mount point after the first test. 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
|
||||
|
||||
@@ -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)
|
||||
- `report` and `trees` leave out empty files. `report` writes no group of size
|
||||
0, and `trees` writes no group whose trees hold 0 bytes. An empty file still
|
||||
counts toward a tree's digest (2026-11-11,
|
||||
|
||||
Reference in new issue
Block a user