Date: Mon, 16 Oct 2006 17:18:39 +0400 From: Yar Tikhiy <yar@comp.chem.msu.su> To: freebsd-rc@freebsd.org Subject: Re: bin/104044: [patch] rc.d/cleartmp works incorrectly Message-ID: <20061016131839.GC49925@comp.chem.msu.su> In-Reply-To: <200610121040.k9CAeLB8080084@freefall.freebsd.org> References: <200610121040.k9CAeLB8080084@freefall.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, Oct 12, 2006 at 10:40:21AM +0000, Andrey Simonenko wrote: > The following reply was made to PR bin/104044; it has been noted by GNATS. > > From: Andrey Simonenko <simon@comsys.ntu-kpi.kiev.ua> > To: Yar Tikhiy <yar@comp.chem.msu.su> > Cc: Florent Thoumie <flz@xbsd.org>, bug-followup@freebsd.org > Subject: Re: bin/104044: [patch] rc.d/cleartmp works incorrectly > Date: Thu, 12 Oct 2006 13:36:29 +0300 > > On Tue, Oct 10, 2006 at 03:31:35PM +0400, Yar Tikhiy wrote: > > On Tue, Oct 10, 2006 at 02:34:43PM +0400, Yar Tikhiy wrote: > > > > > > > 2. Ignore error code from rm and always run find, that is > > > > use "rm ... ; find ..." instead of "rm ... && find ...": > > > > one can create many files with long names and rm will not > > > > be called because of "Argument list too long" error, so > > > > find should do all of the work. > > > > > > By the way, did you consider omitting the first rm at all and just > > > using "find ... -print0 | xargs -0 rm -rf" ? The first rm can be > > > an optimization as long as we use find with -exec. OTOH, xargs -0 > > > would buy us the same performance and robustness without hacks. > > > Both find and xargs should be available to cleartmp. Here's the > > > code. Note "type -d" omitted. > > > > > > if checkyesno ${rcvar1}; then > > > # This is not needed with mfs /tmp, but doesn't hurt anything. > > > echo "Clearing /tmp." > > > find -x /tmp/. ! -name . \ > > > ! \( -name lost+found -type d -user root \) \ > > > ! \( \( -name quota.user -or -name quota.group \) \ > > > -type f -user root \) \ > > > -prune -print0 | xargs -0 rm -rf > > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > > > elif ... > > > > It seems we can use just "-delete" here. If run as root, find > > deletes entries with funny permissions or flags as well as rm does. > > BTW, find will descend into lost+found and delete its contents in > > both cases (rm w/ -prune, or -delete), which is good IMHO. JFTR: Using -delete was a stupid idea of mine. If we want to preserve lost+found and quota.* _only_ in /tmp itself, then we have to use "-prune -exec". The committed version doesn't use -delete. -- Yar
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20061016131839.GC49925>