DONUTSD(1)

๐Ÿ“ฆ
version 2.2.3 ยท 2 versions
, in fedora 43

๐Ÿ’– DONUTSD ๐Ÿ’–

okay bestie, so this is donutsd, a little daemon from the User Contributed Perl Documentation corner of the universe, and it literally just runs the donuts syntax checker on loop and tattles to an admin when stuff changes. that's the whole job. she's got main character energy and a clipboard. ๐Ÿ’…


โœจ SYNOPSIS โœจ

donutsd [-z FREQ] [-t TMPDIR] [-f FROM] [-s SMTPSERVER] [-a DONUTSARGS]
        [-x] [-v] [-i zonelistfile] [ZONEFILE ZONENAME ZONECONTACT]

๐Ÿฉ DESCRIPTION ๐Ÿฉ

so here's the vibe: donutsd runs donuts over a whole set of zone files every so often โ€” that "every so often" is the frequency, and it's set by the -z flag, which defaults to 24 hours โ€” and it just sits there watching for changes in the results. like a girl refreshing her feed. ๐ŸŒธ

and why would the results change, you ask? because DNSSEC-related records are time-sensitive (think RRSIG validity periods, bestie, they expire) or because parent/child relationships have changed. drama happens. ๐Ÿ˜ญ

if anything changed in the output since the last time donuts ran on a particular zone file, the results get emailed straight to the zone administrator's email address you specified. no cap, it just does that.


๐ŸŽ€ OPTIONS ๐ŸŽ€

  • -v โ€” turns on more verbose output. she starts telling you everything. ๐Ÿ—ฃ๏ธ
  • -o โ€” run once and quit, instead of sleeping or re-running forever. one and done, periodt.
  • -a ARGUMENTS โ€” specifies command line arguments to be passed along to the donuts executions.
  • -z TIME โ€” sleeps TIME seconds between calls to donuts. and listen, the DNSSEC-Tools timetrans program can convert big time units (like weeks and days) into seconds for you, so you don't have to do math. ๐Ÿงฎ
  • -e ADDRESS โ€” mail ADDRESS with a summary of the results from all the files. it's the last few lines of the donuts output for each zone, showing how many errors were found. the receipts, basically.
  • -s SMTPSERVER โ€” when sending mail, send it to the SMTPSERVER specified. the default is localhost. ๐Ÿ 
  • -f FROMADDR โ€” when sending mail, use FROMADDR for the From: address. gotta have a return address, bestie.
  • -x โ€” send the diff output in the email message as well as the donuts output. both. we want both. ๐Ÿซถ
  • -t TMPDIR โ€” store temporary files in TMPDIR.
  • -i INPUTZONES โ€” see the next section for the details. ๐Ÿ‘€

๐ŸŒˆ ZONE ARGUMENTS ๐ŸŒˆ

the rest of the arguments to donutsd should be triplets of the following info:

  • ZONEFILE โ€” the zone file to examine. ๐Ÿ”
  • ZONENAME โ€” the zonename that file is supposed to be defining.
  • ZONECONTACT โ€” an email address of the zone administrator (or a comma-separated list of addresses, she's flexible). the results will be sent to this email address.

and okay, plot twist: instead of listing all the zones you wanna monitor on the command line, you can use the -i flag, which specifies a file to be read that lists the TRIPLES instead. each line in this file should contain one triple, with white-space separating the arguments.

example, bestie:

db.zonefile1.com   zone1.com   admin@zone1.com
db.zonefile2.com   zone2.com   admin@zone2.com,admin2@zone2.com

๐Ÿ’œ XML zone files ๐Ÿ’œ

for even more control, you can specify an XML file (whose name must end in .xml) that describes the same information. this also allows for per-zone customization of the donuts arguments. the XML::Smart Perl module must be installed in order to use this feature โ€” no module, no feature, iykyk.

<donutsd>
  <zones>
   <zone>
     <file>db.example.com</file>
     <name>example.com</name>
     <contact>admin@example.com</contact>
     <!-- this is not a signed zone therefore we'll
          add these args so we don't display DNSSEC errors -->
     <donutsargs>-i DNSSEC</donutsargs>
   </zone>
  </zones>
</donutsd>

the donutsd tree may also contain a configs section where command-line flags can be specified:

<donutsd>
 <configs>
  <config><flag>a</flag><value>--features live --level 8</value></config>
  <config><flag>e</flag><value>wes@example.com</value></config>
 </configs>
 <zones>
  ...
 </zones>
</donutsd>
โš ๏ธ real command line flags will be used in preference to those specified in the .xml file, however. so if you argue with the file, you win. the command line is the main character here. ๐Ÿ‘‘

โญ EXAMPLE โญ

donutsd -a "--features live --level 8" -f root@example.com \
   db.example.com example.com admin@example.com

look at her go. ๐ŸŒŸ


Copyright 2005-2013 SPARTA, Inc. All rights reserved. See the COPYING file included with the DNSSEC-Tools package for details.


๐Ÿฆ‹ AUTHOR ๐Ÿฆ‹

Wes Hardaker <hardaker@users.sourceforge.net>


๐ŸŒธ SEE ALSO ๐ŸŒธ


and that's the whole page, bestie!! this one came to you courtesy of perl v5.42.0 on 2025-07-23, so go forth and monitor those zones responsibly. mwah. ๐Ÿ’–โœจ

๐Ÿ“ฆ where this page comes from