On Apr 08 08:34:16, o...@drijf.net wrote: > On Tue, Apr 08, 2025 at 08:14:34AM +0200, Jan Stary wrote: > > > On Apr 08 06:56:53, sema...@kapouay.eu.org wrote: > > > TSS <t...@mg-1.uk> writes: > > > > > > > Greetings, > > > > > > > > I've been using this gimmick for backing up some OpenBSD 7.6 systems: > > > > https://github.com/thexhr/openbsd-timemachine > > > > For the purposes of this discussion, it: > > > > > > > > 1. uses hotplugd to run a script when you plug in a USB backup drive > > > > 2. this script mounts the backup drive > > > > 3. it then uses rsnapshot (rsync basically) to back up the data > > > > 4. the script unmounts the backup drive > > > > > > > > Everything is just fine until step 4, when the backup drive refuses to > > > > unmount. If you try to do it yourself, you see: > > > > > > > > umount: /my_backup_mount_point: Device busy > > > > > > > > This doesn't seem to be a temporary issue: after an hour's wait, the > > > > drive > > > > still can't be unmounted. > > > > > > > > I'm not sure how to debug the problem since fstat shows no open file on > > > > the > > > > drive, nor any process using any directory on the drive as a working > > > > directory. > > > > > > how did you use fstat ? I don't remember well, but using > > > 'fstat /my_backup_mount_point' might not be enough. > > > > > > but you could use: > > > > > > $ fstat -f /my_backup_mount_point > > > > > > with -f, fstat will list all opened files in the /my_backup_mount_point > > > mount point (at any depth). > > > > For example, as I'm writing this in mutt/vim (paused): > > > > $ fstat /tmp > > USER CMD PID FD MOUNT INUM MODE R/W > > SZ|DV NAME > > > > $ fstat -f/tmp > > USER CMD PID FD MOUNT INUM MODE R/W SZ|DV > > hans fstat 6559 1 /tmp 25 -rw-r--r-- w 0 > > hans nvi 16311 4 /tmp 32897* -rw------- r 1474 > > hans nvi 16311 5 /tmp 32901 -rw------- re 1940 > > hans nvi 16311 6 /tmp 16449 -rw------- rwe 5120 > > hans nvi 16311 7 /tmp 4* -rw------- rwe 0 > > hans nvi 16311 8 /tmp 5 -rw------- re 0 > > hans nvi 16311 9 /tmp 16450 -rw------- rw 610 > > hans nvi 16311 10 /tmp 16451 -rwx------ rwe 0 > > hans nvi 16311 11 /tmp 6* -rw------- rwe 0 > > hans sh 48868 4 /tmp 32897* -rw------- r 1474 > > hans mutt 5793 4 /tmp 32897* -rw------- rp 1474 > > hans ksh 12342 1 /tmp 25 -rw-r--r-- wp 0 > > > > > (it should be the same than > > > 'fstat | grep /my_backup_mount_point') > > > > Apparently not: > > > > $ fstat /home > > USER CMD PID FD MOUNT INUM MODE R/W > > SZ|DV NAME > > > > $ fstat -f /home > > USER CMD PID FD MOUNT INUM MODE R/W SZ|DV > > hans fstat 77656 wd /home 466560 drwxr-xr-x r 17408 > > hans nvi 16311 wd /home 466560 drwxr-xr-x r 17408 > > hans nvi 16311 3 /home 466929 -rw------- r 34821589 > > hans sh 48868 wd /home 466560 drwxr-xr-x r 17408 > > hans sh 48868 3 /home 466929 -rw------- r 34821589 > > hans mutt 5793 wd /home 466560 drwxr-xr-x r 17408 > > hans mutt 5793 3 /home 466929 -rw------- rp 34821589 > > hans ksh 12342 wd /home 466560 drwxr-xr-x r 17408 > > hans ksh 12342 11 /home 466785 -rw------- rwep 9047 > > > > Which is strange, because -f is supposed to > > > > _restrict_ examination to files open in > > the same file systems as the named file arguments > > > > Jan > > > > fstat != fstat /home > > The no argment case lists all files open in the whole system. > > I suppose the descripton of -f says "restrict" because it compares > agains the no arg case. > > -Otto >
Right, "fstat /home" just treats /home as a named file arg (which is not "open" by anything).