Slaptijack Title

OS X Not Appending Search Domains - Yosemite Edition

by Scott Hebert

FinderIt seems this problem has resurfaced again with the new version of Mac OS X. More specifically, this problem seems to affect appending search domains when the hostname contains a dot. In Yosemite (10.10), mDNSResponder has been replaced with discoveryd. Fortunately, all we need to do here is add the --AlwaysAppendSearchDomains argument to the LaunchDaemon startup file and everything should work as expected.

  1. Before you do anything, make sure you have updated to at least OS X 10.10.1.
  2. You will need to edit /System/Library/LaunchDaemons/ Add <string>--AlwaysAppendSearchDomains</string> to the list of strings in the ProgramArguments <array>.
  3. Restart discoveryd to see your changes take effect.
    sudo launchctl unload -w /System/Library/LaunchDaemons/
    sudo launchctl load -w /System/Library/LaunchDaemons/
  4. Profit!

Mac OS X Not Using Search Domains

by Scott Hebert

FinderEvery time I restart my OS X Mountain Lion (10.9) laptop, it stops using the DNS search domains I've added via the Network preferences pane. I have found that restarting mDNSResponder fixes this issue. There are two ways to do this.

The first is a simple restart by sending a SIGHUP to the process:

$ sudo killall -HUP mDNSResponder

The other option is to stop and start the process with the launchctl command:

$ sudo launchctl unload -w /System/Library/LaunchDaemons/
$ sudo launchctl load -w /System/Library/LaunchDaemons/

Mutt: Deleting Messages Older Than 30 Days

by Scott Hebert

Mutt LogoI tend to clear out large chunks of email all at once. The most common thing I do is clear out all mail older than 30 days.

In mutt do the following:

  • Shift-D to delete messages matching a pattern. This will return a prompt that says Delete messages matching:.
  • ~d > 30d to delete messages older than 30 days.
  • Enjoy the extra disk space you just created.

Puppet + Augeas: Modify Logrotate Configuration

by Scott Hebert

PuppetOn my web server, I keep my web sites in /var/lib/www. Each web site has a dedicated logs directory. Since logrotate is already rotating Apache logs on the server, I'd like to continue using that to rotate these log files as well. Below, is a Puppet snippet that uses Augeas to modify the stock Debian logrotate configuration file for Apache to include my custom log directories.

augeas { "apache2/logging/sites":
    lens    => "Logrotate.lns",
    incl    => "/etc/logrotate.d/apache2",
    changes => [
        "ins file after rule[file='/var/log/apache2/*.log']/file[last()]",
        "set rule[file='/var/log/apache2/*.log']/file[last()] '/var/lib/www/*/logs/*_log'",
    onlyif  => "match rule[file='/var/log/apache2/*.log']/file[.='/var/lib/www/*/logs/*_log'] size == 0",
    require => Noop["apache/installed"],
    before  => Noop["apache/configured"],

/usr/bin/mandb: the setuid man user "man" does not exist

by Scott Hebert

I stumbled across this problem when a daily cronjob on one of our Debian servers complained about this. A lot. If you run across this on one of your systems, there is a quick fix.

In our case, it turned out that /usr/bin/mandb could not read /etc/passwd because the mode was 0600 rather than 0644. A quick change (chmod 644 /etc/passwd) and things were back to normal.