DONUTSD(1)

πŸ“¦ version 2.2.3, in arch rolling

πŸ’– DONUTSD(1) β€” the donutsd manual page bestie πŸ’–

Bestie, welcome to the User Contributed Perl Documentation glow-up for donutsd, section 1 of the manual. Grab a strawberry drink πŸ“ β€” this tool is lowkey a whole vibe.

✨ NAME ✨

donutsd β€” Run the donuts syntax checker periodically and report the results to an administrator. No cap, that's the name bit.

🌸 SYNOPSIS 🌸

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

πŸ¦‹ DESCRIPTION πŸ¦‹

So donutsd runs donuts on a set of zone files every so often β€” the frequency is the -z flag, and it defaults to 24 hours β€” and watches for changes in the results. These changes may be due to the time-sensitive nature of DNSSEC-related records (e.g., RRSIG validity periods) or because parent/child relationships have changed. If any changes have occurred in the output since the last run of donuts on a particular zone file, the results are emailed to the specified zone administrator's email address. πŸ’Œ

πŸ’… OPTIONS πŸ’…

  • -v β€” Turns on more verbose output. More yapping, more detail, iykyk.
  • -o β€” Run once and quit, as opposed to sleeping or re-running forever. One-and-done main character behavior.
  • -a ARGUMENTS β€” Specifies command line arguments to be passed to donuts executions.
  • -z TIME β€” Sleeps TIME seconds between calls to donuts. The DNSSEC-Tools timetrans program can be used to convert from large time units (e.g., weeks and days) to seconds. Conversion slay.
  • -e ADDRESS β€” Mail ADDRESS with a summary of the results from all the files. These are the last few lines of the donuts output for each zone that details the number of errors found. The receipts, basically.
  • -s SMTPSERVER β€” When sending mail, send it to SMTPSERVER specified. The default is localhost.
  • -f FROMADDR β€” When sending mail, use FROMADDR for the From: address.
  • -x β€” Send the diff output in the email message as well as the donuts output. Extra tea included.
  • -t TMPDIR β€” Store temporary files in TMPDIR.
  • -i INPUTZONES β€” See the next section for details. It's giving "the zone list goes here."

πŸŽ€ ZONE ARGUMENTS πŸŽ€

The rest of the arguments to donutsd should be triplets of the following information:

  • ZONEFILE β€” The zone file to examine. Like, the actual file, bestie.
  • ZONENAME β€” The zonename that file is supposed to be defining. No identity crisis allowed.
  • ZONECONTACT β€” An email address of the zone administrator (or a comma-separated list of addresses). The results will be sent to this email address. Yes, comma-separated is valid; don't leave your besties out.

Additionally, instead of listing all the zones you wish to monitor on the command line, you can use the -i flag which specifies a file to be read listing the TRIPLES instead. Each line in this file should contain one triple with white-space separating the arguments.

Example:

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

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.

 <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 CLI is the main character, periodt.

🌈 EXAMPLE 🌈

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

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

πŸ’œ AUTHOR πŸ’œ

Wes Hardaker <hardaker@users.sourceforge.net> β€” the icon behind this page.

🌟 SEE ALSO 🌟

πŸ’Œ Cute sign-off: this page comes from perl v5.44.0 and is dated 2026-10-17. mwah πŸ’‹

πŸ“¦ where this page comes from