Taming sendmail [ I hope ]

With the exception of one Linux server, which performs URL routing, all our Linux servers have jobs to do, and send email out when their jobs have completed. All our Linux servers run sendmail, but sendmail is being used in its crudest form. It’s not serving in its full capacity, but its only job is to move email off each Linux server to our email server, and does so with a Perl shim that logs into our email server using a valid user name.

Over the past few years, our email server has needed replacing. Its disks get full, and it cannot accept more incoming mail. I’ve never bothered to tune sendmail, but have now resorted to something crude that I hope will prevent our Linux servers from many, many retries, and hanging due to one of many conditions, including running out of memory.


# A $? -eq 1 means the mail server is running. That is ?Invalid command was not found.
(echo open mailserver.arlington1.local 25; sleep 1; echo EHLO; echo quit) | telnet | grep "?Invalid command"

if [ $? -eq 1 ]; then
   if [ -r /tmp/sendmail_stopped ]; then
      rm /tmp/sendmail_stopped
      /etc/init.d/sendmail start
      mail -s "sendmail has started back up." dbadmin@town.arlington.ma.us << /dev/null
   else
      echo "sendmail OK"
   fi
else
   if [ ! -r /tmp/sendmail_stopped ]; then
      touch /tmp/sendmail_stopped
      /etc/init.d/sendmail stop
   else
      echo "sendmail still not OK"
   fi
fi

So far, so good. I’m hoping to shutoff sendmail and hence shutoff retries, so I don’t have to force reboot our Linux servers.

Advertisements

Leave a comment

Filed under General

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s