Apr 17

Qmail logs quite a lot of information about what it’s doing, although it can be daunting to collect it all together. If you’re using daemontools, each daemon has its own set of logs, kept in a rotating set of log files maintained by multilog, usually with a TAI64N timestamp.

The qmail-send process logs each message queued and each delivery attempt. The qmail-smtpd process logs each incoming SMTP connection, although it won’t describe what happened during the connection. tcpserver logs every connection denied due to entries in the connection rules file, and rblsmtpd logs every connection it blocked due to a DNSBL entry. If you use QMAILQUEUE to run other programs at SMTP time, anything they send to stderr is logged, and if you’ve added other patches to qmail-smtpd, anything they write to stderr is logged, too.

A system can be set up to do logs analysis on the fly, every time multilog switches to a new log file or once a day in a batch. It often makes sense to combine the two, doing some work at switching time and the rest daily. Although it’s usually more convenient to keep the logs for each application separate, it’s not hard to create combined logs for analysis or just to keep around in case someone needs to look at them later. If a set of logs from different programs all have TAI64N timestamps, merge them using the standard sort program sort -m. TAI64N timestamps are fixed-length hex strings, so merging them in alphanumeric order is the same as date order. Once they’re merged, tai64local can make the timestamps readable by people. So to merge a set of log files, all of which have the standard multilog TAI64N names that start with an at-sign:

sort -m \@* | tai64nlocal > merged-log

Run command above in one of your log directories.

See http://cr.yp.to/libtai/tai64.html for more detail.

written by MG \\ tags: ,

Apr 16


As root user, edit /etc/X11/xorg.conf and add:

Option “HWCursor” “off”

to the Device section

save the file and restart X

written by MG \\ tags: , ,

Apr 15

Just in case anyone else has the same problem – I found the fix.

I had to set the MTU of the listening interface (eth0 in my case) to 1400 (it was set to 1500) on my linux server.

ifconfig eth0 mtu 1400


written by MG \\ tags: , ,

Apr 15

Due to the increase in the number of ISP’s blocking port 25 for third party mailservers I decided to setup my mailserver to answer SMTP request on multiple ports. While this can be accomplished in many ways, such as port forwarding or multiple instances of qmail-smtpd, my situation required setting up a second instance or qmail-smtpd.

The setup process is fairly straight forward. Here are the steps I took to accomplish my goal:

First you will need to stop qmail and make a copy of your qmail-smtpd directory located in /var/qmail/supervise/smtp. I called my new copy /var/qmail/supervise/smtp2. Once the copy had been completed I then needed to edit the run file located in the smtp2 directory. This was a simple change to add the port number I wished to have qmail-smtpd run on. Here is an example:


/usr/local/bin/tcpserver -H -v -R -l “$LOCAL” -x /etc/tcp.smtp.cdb -c “$MAXSMTPD” -u “$QMAILDUID” -g “$NOFILESGID” 0 smtp \


/usr/local/bin/tcpserver -H -v -R -l “$LOCAL” -x /etc/tcp.smtp.cdb -c “$MAXSMTPD” -u “$QMAILDUID” -g “$NOFILESGID” 0 2525 \


Notice the 2525 which is the second port I will be running. Please be aware that this line may be different depending on your installation of QMail. My installation was based on the Life with Qmail instructions and also the addition of SpamAssassin, SpamHaus RBL, relay-ctrl-chk and ClamAV.

With this change complete I needed to update the run file located in the /var/qmail/supervise/smtp2/log directory. I just changed the logging path to log to a second log named smtp2.

Start qmail.

verify:  “netstat -natp|grep tcpserver” and you should see:

tcp        0      0        *                   LISTEN      31692/tcpserver
tcp        0      0      *                   LISTEN      31735/tcpserver


written by MG \\ tags: , , ,

Apr 11
  • 1. Stop the mysqld daemon process.
  • 2. Start the mysqld daemon process with the –skip-grant-tables option.
  • 3. Start the mysql client with the -u root option.
  • 4. Execute the UPDATE mysql.user SET Password=PASSWORD(‘password’) WHERE User=’root’;
  • 5. Execute the FLUSH PRIVILEGES; command.

These steps reset the password for the “root” account to “password”. To change the password for a different account, or to set a different password, just edit the variables in single-quotes in step 4.

If you know your existing MySQL root password, steps 1-3 are not necessary.


written by MG \\ tags: , ,