Make filesystem type configurable for periodic(8)?

Freddie Cash fjwcash at gmail.com
Fri May 4 18:06:01 UTC 2012


On Fri, May 4, 2012 at 11:02 AM, Freddie Cash <fjwcash at gmail.com> wrote:
> On Fri, May 4, 2012 at 9:08 AM, Bryan Drewery <bryan at shatow.net> wrote:
>> On 05/04/2012 11:05 AM, Freddie Cash wrote:
>>> A few of the periodic(8) scripts in FreeBSD have constructs similar to
>>> the following to get which filesystems to scan for various things:
>>>     MP=`mount -t ufs,zfs | awk '$0 !~ /no(suid|exec)/ { print $3 }'`
>>>
>>> For systems with large ZFS pools, and many ZFS filesystems, these
>>> periodic scripts can grind it to its knees, and then some.  For
>>> backups servers where we don't really care about the
>>> ownership/permissions of files from the FreeBSD perspective, we really
>>> don't want the ZFS filesytems to be scanned; only the UFS ones for the
>>> FreeBSD OS install.  To that end, I have to manually edit these files
>>> to remove the ",zfs":
>>>     MP=`mount -t ufs | awk '$0 !~ /no(suid|exec)/ { print $3 }'`
>>>                           ^^^^^^^^
>>> Would it be worthwhile to anyone else to make the filesystem type(s)
>>> to scan via the periodic(8) scripts a variable that's set by default
>>> in /etc/defaults/periodic.conf and that user's can override via
>>> /etc/periodic.conf?
>>>
>>> Or, am I the only one that's suffering here?  :)
>>>
>>> If there's interesting in this, I can look into coming up with some
>>> patches.  But wanted to check if anyone else would find it useful.
>>>
>>
>> I would find this useful. But further, I have a ZFS root pool as well as
>> a ZFS backup pool. I don't want to exclude all of ZFS, just certain
>> pools, or even certain datasets.
>
> Would you mind testing the attached patch?  It adds four new variables
> for use in periodic.conf (defaults shown):
>
> daily_status_security_chksetuid_fs="ufs,zfs"
> daily_status_security_chksetuid_fs_ignore=""
> daily_status_security_neggrpperm_fs="ufs,zfs"
> daily_status_security_neggrpperm_fs_ignore=""
>
> The _fs variables take filesystem types, as would be passed to
> mount(8).  These limit the entire search based on type, so an all or
> nothing approach.
>
> The _fs_ignore variables are space separated lists of mountpoints to
> skip.  So you can leave zfs in the _fs list, and then list specific
> filesystems here that you do not want to be scanned.
>
> I don't claim to be any great shell script writer, but this appears to
> do the job.  Any suggestions, pointers, comments, etc welcomed.  :)

Guess I should mention how to use the patch.  :)

cd /etc
patch -p0 < /path/to/periodic-fs-type.patch

-- 
Freddie Cash
fjwcash at gmail.com


More information about the freebsd-stable mailing list