HAVP/CLAMAV freezing on pfSense 1.2.3

hi, i don't know if you already had this problem with pfSense 1.2.3 but my havp or better said, clamd quits sometimes unexpectly. I searched the internet for some solutions but i couldn't find any. Some people were reporting that they had a hardware problem and that the freezing was solved after replacing e.g. the hard drive. Well, because i'm using a relatively new drive (or new compact flash as a drive), i wasn't too satisfied with this and wrote my own script to test the clamd socket and restart havp if needed.

My logs showed some of the following errors:

/var/log/havp/access.log:
{DATE} {IP} GET 200 {URL} 331+951 SCANERROR Detected dead scanner

/var/log/havp/havp.log:
{DATE} Scanner errors: Clamd: Could not read from scanner socket (lasturl: {URL})

So here is my script:

#! /usr/local/bin/php -qC
<?php
# open clamd socket
$socket = @fsockopen("localhost", 3310, $errno, $errstr, 1);
# if socket connection fails, restart clamd and havp
if (!$socket) {
    print "Unable to connect to CLAMD… socket down?\n";
    print "Stopping HAVP…\n";
    system("/usr/local/etc/rc.d/havp stop");
    print "Restarting CLAMD…\n";
    system("/usr/local/etc/rc.d/clamd stop");
    system("/usr/local/etc/rc.d/clamd start");
    print "Starting HAVP…\n";
    system("/usr/local/etc/rc.d/havp start");
}
# close socket
else fclose($socket);
?>

Save this to a file on the pfSense filesystem, set executable permissions on that file (chmod 755 <script>), add following lines to /etc/crontab and replace the <path_to_file> with your path and scriptname:

# check for havp every minute
*/1 * * * * root <path_to_file>

From then on, my pfSense box ran smoothly again.

Spindown/Standby HDD (Linux)

Hi, this is for everyone who already wanted to know how to spin down the disks on linux and save some energy. It's quite easy, just enter following command in your terminal:

# hdparm -S 241 /dev/sda

This will spin down the specified disk (sda) after 30 minutes of inactivity. Here is a small explanation of the time paramter:

 -S:
Set the standby (spindown) timeout for the drive. This value is used by the drive to determine how long to wait  (with no disk activity)  before turning off the spindle motor to save power. Under such circumstances, the drive may take as long as 30 seconds to respond to a subsequent disk access, though most drives are much quicker. The encoding of the timeout value is somewhat peculiar.  A value of zero means "timeouts are disabled": the device will not automatically enter standby mode.  Values from 1 to 240 specify multiples of 5 seconds, yielding timeouts from 5 seconds to 20 minutes. Values from 241 to 251 specify from 1 to 11 units of 30 minutes, yielding timeouts from 30 minutes to 5.5 hours. A value of 252 signifies a timeout of 21 minutes. A value of 253 sets a vendor-defined timeout period between 8 and 12 hours, and the value 254 is reserved.  255 is interpreted as 21 minutes plus 15 seconds. Note that some older drives may have very different interpretations of these values.

Don't forget to reboot after you entered the command.

Creating quotas on CentOS 5

To implement disk quotas, use the following steps:

  1. Enable quotas per file system by modifying the /etc/fstab file:
    /dev/VolGroup00/LogVol02 /home ext3 defaults,usrquota,grpquota 1 2
  2. Remount the file system(s).:
    mount -o remount <file-system>
  3. Create the quota database files and generate the disk usage table.:
    quotacheck -cug -F vfsv0 <file-system>
    quotacheck -avug
  4. Assign quota policies.:
    edquota <username>

source: http://www.linuxtopia.org/online_books/centos5/centos5_administration_guide/centos5_ch-disk-quotas.html#s1-disk-quotas-configuring