Micah Anderson
2007-Aug-25 02:02 UTC
[Logcheck-devel] Bug#412201: [PATCH] Squashed commit of the following:
commit 81496d0cf7b161bf981d51f0b96f860d68f3f6e3
Author: Micah Anderson <micah at debian.org>
Date: Fri Aug 24 17:51:31 2007 -0400
Enable alternate temporary directory to be set in the configuration file
On servers where the logfiles are very large and grow quickly, the
logcheck processes may run into space issues in /tmp resulting in the
email such as the following to be sent:
cp: writing `/tmp/logcheck.y12449/checked': No space left on device
/usr/sbin/logcheck: line 161: cannot create temp file for here document: No
space left on device
mail: /tmp/mail.RsXXXXpc2eAx: No space left on device
Null message body; hope that's ok
Followed by an empty email.
This is not good because of a few reasons:
1. /tmp fills up temporarily, other problems can result from this
2. You loose logcheck for this run
Although logcheck falls back to /var/tmp if it cannot create a directory in
/tmp,
it doesn't allow the admin to set a temporary directory other than /tmp
if this
condition presents itself.
The solution is simple, the attached patch adds a new configuration to
/etc/logcheck/logcheck.conf for a TMP variable, sets it to be default
what logcheck uses now (/tmp) and alters the logcheck executable to honor
this
variable when set.
---
etc/logcheck.conf | 12 ++++++++++++
src/logcheck | 2 +-
2 files changed, 13 insertions(+), 1 deletions(-)
diff --git a/etc/logcheck.conf b/etc/logcheck.conf
index 2d2c378..c8a823d 100644
--- a/etc/logcheck.conf
+++ b/etc/logcheck.conf
@@ -63,3 +63,15 @@ FQDN=1
# Controls [logcheck] prefix on Subject: lines
# ADDTAG="no"
+
+# Set a different location for temporary files than /tmp
+# this is useful if your /tmp is small and you are getting
+# errors such as:
+# cp: writing `/tmp/logcheck.y12449/checked': No space left on device
+# /usr/sbin/logcheck: line 161: cannot create temp file for here document: No
space left on device
+# mail: /tmp/mail.RsXXXXpc2eAx: No space left on device
+# Null message body; hope that's ok
+#
+# If this is happening, likely you will want to change the following to be some
other
+# location, such as /var/tmp
+TMP="/tmp"
diff --git a/src/logcheck b/src/logcheck
index abb33f9..e0c907a 100755
--- a/src/logcheck
+++ b/src/logcheck
@@ -619,7 +619,7 @@ else
fi
# Create the secure temporary directory or exit
-TMPDIR=$(mktemp -d -p /tmp logcheck.XXXXXX) \
+TMPDIR=$(mktemp -d -p $TMP logcheck.XXXXXX) \
|| TMPDIR=$(mktemp -d -p /var/tmp logcheck.XXXXXX) \
|| error "Could not create temporary directory"
--
1.5.2.4
Apparently Analagous Threads
- Bug#703936: logcheck-database: SSH Bad Protocol Version Idenitifcation Rule is incomplete
- Bug#583155: logcheck-database: Please create rules for amavis(d-new)
- Bug#632471: logcheck-database: spamd child cleanup message broken after upgrade to squeeze
- Bug#602494: logcheck runs filters for packages not installed
- Bug#657641: /usr/sbin/logcheck: line 100: kill: (31667) - No such process
