From owner-freebsd-hackers@FreeBSD.ORG Wed Mar 8 18:35:08 2006 Return-Path: X-Original-To: freebsd-hackers@freebsd.org Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 6C8D016A420 for ; Wed, 8 Mar 2006 18:35:08 +0000 (GMT) (envelope-from yar@comp.chem.msu.su) Received: from comp.chem.msu.su (comp.chem.msu.su [158.250.32.97]) by mx1.FreeBSD.org (Postfix) with ESMTP id 43B3A43D6E for ; Wed, 8 Mar 2006 18:35:03 +0000 (GMT) (envelope-from yar@comp.chem.msu.su) Received: from comp.chem.msu.su (localhost [127.0.0.1]) by comp.chem.msu.su (8.13.4/8.13.3) with ESMTP id k28IYwUH015561; Wed, 8 Mar 2006 21:34:58 +0300 (MSK) (envelope-from yar@comp.chem.msu.su) Received: (from yar@localhost) by comp.chem.msu.su (8.13.4/8.13.3/Submit) id k28IYvxJ015560; Wed, 8 Mar 2006 21:34:57 +0300 (MSK) (envelope-from yar) Date: Wed, 8 Mar 2006 21:34:57 +0300 From: Yar Tikhiy To: Jilles Tjoelker Message-ID: <20060308183456.GK4474@comp.chem.msu.su> References: <20060306174058.GA32164@stack.nl> <20060307232151.GA91873@comp.chem.msu.su> <20060308144351.GA26748@stack.nl> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20060308144351.GA26748@stack.nl> User-Agent: Mutt/1.5.9i Cc: freebsd-hackers@freebsd.org Subject: Re: find(1) -d vs -prune; /etc/periodic/daily/100.clean-disks X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Mar 2006 18:35:08 -0000 On Wed, Mar 08, 2006 at 03:43:51PM +0100, Jilles Tjoelker wrote: > On Wed, Mar 08, 2006 at 02:21:51AM +0300, Yar Tikhiy wrote: > > On Mon, Mar 06, 2006 at 06:40:58PM +0100, Jilles Tjoelker wrote: > > > Possible solutions/workarounds: > > > 1. do still call -prune and some primaries without side effects > > > in pre-order even if -d is in effect, even though this does not > > > fit at all in find(1)'s design. > > > 2. document the bug and run a find -x over all local r/w filesystems > > > in 100.clean-disks (-x and -d work together properly). > > > > > > What would be the best way to go on? > > > The property of -prune with respect to -d is already documented on the > > find(1) manpage. > > Oh, didn't read that bit. Too busy reading the source code :P > > > As for 100.clean-disks, I fail to see why -prune is needed there. > > One can mount a file system read-write at a directory of a read-only > > file system. Some bullet-proof installations have their / mounted > > read-only. Perhaps the invocation of find(1) in 100.clean-disks > > should be as follows: > > > find / -fstype local ! -fstype rdonly \( $args \) ... > > > Does it make sense? > > No, as that still searches through all the NFS filesystems, so I get the > daily output mail at 4 PM or such. (The effect is the same as the > original command.) > > My idea of doing a find -x over each applicable filesystem seems even > better in the light of this. It is just a little hard to get the list of > local read-write filesystems in a shell script (df -l to get the locals, > mount -p to get the read-writes, intersect these). Will look at it > later. In the good old days when NFS was the only remote file system, the following trick would do: localrw=$(mount -p -t nonfs | awk '$4 == "rw" {print $2}') find -x $localrw \( $args \) ... But today some hackery around ${netfs_types} should be added, as in /etc/rc.d/mountcritlocal. -- Yar