http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=475158 snmpd: keeps complaining on missing /proc/ stats inside vserver flooding syslog diff -r -u net-snmp-5.4.1~dfsg/agent/mibgroup/hardware/cpu/cpu_linux.c net-snmp-5.4.1~dfsg.puck/agent/mibgroup/hardware/cpu/cpu_linux.c --- net-snmp-5.4.1~dfsg/agent/mibgroup/hardware/cpu/cpu_linux.c 2007-02-16 00:09:45.000000000 +1300 +++ net-snmp-5.4.1~dfsg.puck/agent/mibgroup/hardware/cpu/cpu_linux.c 2009-05-04 14:35:53.000000000 +1200 @@ -249,7 +249,7 @@ cpu->pageOut = (unsigned long)pout; } else { if (first) - snmp_log(LOG_ERR, "No page line in %s\n", STAT_FILE); + snmp_log(LOG_INFO, "No page line in %s\n", STAT_FILE); cpu->pageIn = cpu->pageOut = 0; } b = strstr(buff, "swap "); @@ -259,7 +259,7 @@ cpu->swapOut = (unsigned long)swpout; } else { if (first) - snmp_log(LOG_ERR, "No swap line in %s\n", STAT_FILE); + snmp_log(LOG_INFO, "No swap line in %s\n", STAT_FILE); cpu->swapIn = cpu->swapOut = 0; } } diff -r -u net-snmp-5.4.1~dfsg/agent/mibgroup/ucd-snmp/vmstat_linux.c net-snmp-5.4.1~dfsg.puck/agent/mibgroup/ucd-snmp/vmstat_linux.c --- net-snmp-5.4.1~dfsg/agent/mibgroup/ucd-snmp/vmstat_linux.c 2006-09-15 12:48:50.000000000 +1200 +++ net-snmp-5.4.1~dfsg.puck/agent/mibgroup/ucd-snmp/vmstat_linux.c 2009-05-04 14:35:32.000000000 +1200 @@ -316,7 +316,7 @@ sscanf(b, "page %u %u", pin, pout); else { if (first) - snmp_log(LOG_ERR, "No page line in %s\n", STAT_FILE); + snmp_log(LOG_INFO, "No page line in %s\n", STAT_FILE); *pin = *pout = 0; } b = strstr(buff, "swap "); @@ -324,7 +324,7 @@ sscanf(b, "swap %u %u", swpin, swpout); else { if (first) - snmp_log(LOG_ERR, "No swap line in %s\n", STAT_FILE); + snmp_log(LOG_INFO, "No swap line in %s\n", STAT_FILE); *swpin = *swpout = 0; } } --- net-snmp-5.7.1/./agent/mibgroup/ucd-snmp/diskio.c~ 2011-09-28 07:53:47.000000000 +0300 +++ net-snmp-5.7.1/./agent/mibgroup/ucd-snmp/diskio.c 2011-12-27 16:33:10.128099629 +0200 @@ -979,7 +979,8 @@ { FILE* parts; time_t now; - + static int first = 1; + now = time(NULL); if (cache_time + CACHE_TIMEOUT > now) { return 0; @@ -1024,7 +1025,11 @@ int rc; parts = fopen("/proc/partitions", "r"); if (!parts) { - snmp_log_perror("/proc/partitions"); + if (first) { + // log error only once + snmp_log_perror("/proc/partitions"); + first = 0; + } return 1; }