summaryrefslogtreecommitdiff
path: root/contrib/rotatelogs.py
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/rotatelogs.py')
-rw-r--r--contrib/rotatelogs.py104
1 files changed, 0 insertions, 104 deletions
diff --git a/contrib/rotatelogs.py b/contrib/rotatelogs.py
deleted file mode 100644
index 168acb567..000000000
--- a/contrib/rotatelogs.py
+++ /dev/null
@@ -1,104 +0,0 @@
-#! @PYTHON@
-#
-# Copyright (C) 2000-2007 by the Free Software Foundation, Inc.
-#
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-# USA.
-
-"""Check the error logs and send any which have information in them.
-
-If any log entries exist, a message is sent to the mailman owner address
-and the logs are rotated.
-"""
-
-# GETTING STARTED
-#
-# Run this program as root from cron, preferably at least daily. Running
-# as root is optional, but will preserve the various modes and ownerships
-# of log files in "~mailman/logs". If any entries are in "errors" or
-# "smtp-errors", they will be mailed to the mailman owner address.
-#
-# Set COMPRESS_LOGFILES_WITH in mm_cfg.py to "gzip" to get rotated logfiles
-# to be compressed.
-#
-# Hacked from some existing Mailman code by
-# Sean Reifschneider <jafo-mailman@tummy.com>
-# Please direct questions on this to the above address.
-#
-
-showLines = 100 # lines of log messages to display before truncating
-
-import sys, os, string, time, errno
-import paths
-from Mailman import mm_cfg, Utils
-import fileinput, socket, time, stat
-
-# Work around known problems with some RedHat cron daemons
-import signal
-signal.signal(signal.SIGCHLD, signal.SIG_DFL)
-
-
-newLogfiles = []
-text = []
-text.append('Mailman Log Report')
-text.append('Generated: %s' % time.ctime(time.time()))
-text.append('Host: %s' % socket.gethostname())
-text.append('')
-
-logDate = time.strftime('%Y%m%d-%H%M%S', time.localtime(time.time()))
-textSend = 0
-for log in ( 'error', 'smtp-failures' ):
- fileName = os.path.join(mm_cfg.LOG_DIR, log)
-
- # rotate file if it contains any data
- stats = os.stat(fileName)
- if stats[stat.ST_SIZE] < 1: continue
- fileNameNew = '%s.%s' % ( fileName, logDate )
- newLogfiles.append(fileNameNew)
- os.rename(fileName, fileNameNew)
- open(fileName, 'w')
- os.chmod(fileName, stat.S_IMODE(stats[stat.ST_MODE]))
- try: os.chown(fileName, stats[stat.ST_UID], stats[stat.ST_GID])
- except OSError: pass # permission denied, DOH!
-
- textSend = 1
- tmp = '# FILE: %s #' % fileNameNew
- text.append('#' * len(tmp))
- text.append(tmp)
- text.append('#' * len(tmp))
- text.append('')
-
- linesLeft = showLines # e-mail first linesLeft of log files
- for line in fileinput.input(fileNameNew):
- if linesLeft == 0:
- text.append('[... truncated ...]')
- break
- linesLeft = linesLeft - 1
- line = string.rstrip(line)
- text.append(line)
- text.append('')
-
-# send message if we've actually found anything
-if textSend:
- text = string.join(text, '\n') + '\n'
- siteowner = Utils.get_site_email()
- Utils.SendTextToUser(
- 'Mailman Log Report -- %s' % time.ctime(time.time()),
- text, siteowner, siteowner)
-
-# compress any log-files we made
-if hasattr(mm_cfg, 'COMPRESS_LOGFILES_WITH') and mm_cfg.COMPRESS_LOGFILES_WITH:
- for file in newLogfiles:
- os.system(mm_cfg.COMPRESS_LOGFILES_WITH % file)