]> Frank Brehm's Git Trees - my-stuff/py-logrotate.git/commitdiff
pytz.utc für Zeitzone verwendet, code styling
authorFrank Brehm <frank@brehm-online.com>
Fri, 15 Jul 2011 09:54:08 +0000 (09:54 +0000)
committerFrank Brehm <frank@brehm-online.com>
Fri, 15 Jul 2011 09:54:08 +0000 (09:54 +0000)
git-svn-id: http://svn.brehm-online.com/svn/my-stuff/python/PyLogrotate/trunk@296 ec8d2aa5-1599-4edb-8739-2b3a1bc399aa

LogRotate/Common.py
LogRotate/Config.py
LogRotate/Getopts.py
LogRotate/Handler.py
LogRotate/Mailer.py
LogRotate/Script.py
LogRotate/StatusFile.py
logrotate.py
po/de/LC_MESSAGES/pylogrotate.po
po/pylogrotate.pot

index 44e29b83f563e3b0c091bc2987f6daee3530280b..dbb3bc449b880dda0bfaef5f06ffe37bf1104738 100755 (executable)
@@ -13,6 +13,7 @@
 @summary: Module for common used functions
 '''
 
+# Standard modules
 import re
 import sys
 import locale
@@ -22,6 +23,10 @@ import csv
 import pprint
 import email.utils
 
+# Third party modules
+
+# Own modules
+
 revision = '$Revision$'
 revision = re.sub( r'\$', '', revision )
 revision = re.sub( r'Revision: ', r'r', revision )
@@ -159,7 +164,11 @@ def email_valid(address):
 
 #------------------------------------------------------------------------
 
-def human2bytes(value, si_conform = True, use_locale_radix = False, verbose = 0):
+def human2bytes(
+        value,
+        si_conform=True,
+        use_locale_radix=False,
+        verbose=0):
     '''
     Converts the given human readable byte value (e.g. 5MB, 8.4GiB etc.)
     with a prefix into an integer/long value (without a prefix).
@@ -246,7 +255,8 @@ def human2bytes(value, si_conform = True, use_locale_radix = False, verbose = 0)
     elif re.search(r'^\s*P(?:B(?:yte)?)?\s*$', prefix, re.IGNORECASE):
         factor = (factor_si * factor_si * factor_si * factor_si * factor_si)
     elif re.search(r'^\s*PiB(?:yte)?\s*$', prefix, re.IGNORECASE):
-        factor = (factor_bin * factor_bin * factor_bin * factor_bin * factor_bin)
+        factor = (factor_bin * factor_bin * factor_bin *
+                  factor_bin * factor_bin)
     else:
         msg = _("Couldn't detect prefix '%s'.") % (prefix)
         raise ValueError(msg)
@@ -456,7 +466,9 @@ def get_address_list(address_str, verbose = 0):
     addr_list = []
     addresses = []
 
-    for row in csv.reader([address_str], doublequote=False, skipinitialspace=True):
+    for row in csv.reader([address_str],
+                          doublequote=False,
+                          skipinitialspace=True):
         for address in row:
             addr_list.append(address)
 
index f4d0388162ed6e0a1fda90a2ae0bd69e1765be38..19bf95899423b0c8f205d330d73b664d11d3a628 100755 (executable)
@@ -13,6 +13,7 @@
 @summary: module the configuration parsing object for Python logrotating
 '''
 
+# Standard modules
 import re
 import sys
 import gettext
@@ -25,14 +26,17 @@ import glob
 import logging
 import email.utils
 
+# Third party modules
+
+# Own modules
 try:
     import LogRotate.Common
 except ImportError:
     sys.path.append(os.path.abspath(os.path.join(sys.path[0], '..')))
     import LogRotate.Common
 
-from LogRotate.Common import split_parts, email_valid, period2days, human2bytes
-from LogRotate.Common import get_address_list
+from LogRotate.Common import split_parts, email_valid, period2days
+from LogRotate.Common import human2bytes, get_address_list
 from LogRotate.Script import LogRotateScript
 
 revision = '$Revision$'
@@ -394,7 +398,8 @@ class LogrotateConfigurationReader(object):
         _ = self.t.lgettext
 
         if self.verbose > 3:
-            msg = _("Resetting default values for directives to hard coded values.")
+            msg = _("Resetting default values for directives " +
+                    "to hard coded values.")
             self.logger.debug(msg)
 
         self.default = {}
@@ -505,7 +510,10 @@ class LogrotateConfigurationReader(object):
                     self.logger.debug(msg)
 
         # Including own defined directories
-        for item in ('/usr/local/bin', '/sbin', '/usr/sbin', '/usr/local/sbin'):
+        for item in ('/usr/local/bin',
+                     '/sbin',
+                     '/usr/sbin',
+                     '/usr/local/sbin'):
             if os.path.isdir(item):
                 real_dir = os.path.abspath(item)
                 if not real_dir in dir_included:
@@ -520,8 +528,8 @@ class LogrotateConfigurationReader(object):
     #------------------------------------------------------------
     def _get_std_search_path(self, include_current = False):
         '''
-        Returns a list with all search directories from $PATH and some additionally
-        directiories.
+        Returns a list with all search directories from $PATH
+        and some additionally directiories.
 
         @param include_current: include the current working directory
                                 at the end of the list
@@ -584,7 +592,8 @@ class LogrotateConfigurationReader(object):
         Checks the availability of the given compress command.
 
         'internal_zip, 'internal_gzip' and 'internal_bzip2' are accepted as
-        valid compress commands for compressing with the appropriate python modules.
+        valid compress commands for compressing
+        with the appropriate python modules.
 
         @param command: command to validate (absolute or relative for
                         searching in standard search path)
@@ -597,16 +606,19 @@ class LogrotateConfigurationReader(object):
 
         _ = self.t.lgettext
         path_list = self._get_std_search_path(True)
-
-        match = re.search(r'^\s*internal[\-_\s]?zip\s*', command, re.IGNORECASE)
+        pat = r'^\s*internal[\-_\s]?zip\s*'
+        match = re.search(pat, command, re.IGNORECASE)
         if match:
             return 'internal_zip'
 
-        match = re.search(r'^\s*internal[\-_\s]?gzip\s*', command, re.IGNORECASE)
+        pat = r'^\s*internal[\-_\s]?gzip\s*'
+        match = re.search(pat, command, re.IGNORECASE)
         if match:
             return 'internal_gzip'
 
-        match = re.search(r'^\s*internal[\-_\s]?bzip2\s*', command, re.IGNORECASE)
+        pat = r'^\s*internal[\-_\s]?bzip2\s*'
+        match = re.search(pat, command, re.IGNORECASE)
         if match:
             return 'internal_bzip2'
 
@@ -679,7 +691,8 @@ class LogrotateConfigurationReader(object):
             return True
 
         if not os.path.exists(self.config_file):
-            raise LogrotateConfigurationError( _("File '%s' doesn't exists.") % (self.config_file))
+            msg = _("File '%s' doesn't exists.") % (self.config_file)
+            raise LogrotateConfigurationError(msg)
 
         self.config_file = os.path.abspath(self.config_file)
 
@@ -701,17 +714,21 @@ class LogrotateConfigurationReader(object):
 
         _ = self.t.lgettext
         pp = pprint.PrettyPrinter(indent=4)
-        self.logger.debug( _("Try reading configuration from '%s' ...") % (configfile) )
+        msg = _("Try reading configuration from '%s' ...") % (configfile)
+        self.logger.debug(msg)
 
         if not os.path.exists(configfile):
-            raise LogrotateConfigurationError( _("File '%s' doesn't exists.") % (configfile))
+            msg = _("File '%s' doesn't exists.") % (configfile)
+            raise LogrotateConfigurationError(msg)
 
         if not os.path.isfile(configfile):
-            raise LogrotateConfigurationError( _("'%s' is not a regular file.") % (configfile))
+            msg = _("'%s' is not a regular file.") % (configfile)
+            raise LogrotateConfigurationError(msg)
 
         self.config_files[configfile] = True
 
-        self.logger.info( _("Reading configuration from '%s' ...") % (configfile) )
+        msg = _("Reading configuration from '%s' ...") % (configfile)
+        self.logger.info(msg)
 
         cfile = None
         try:
@@ -835,18 +852,22 @@ class LogrotateConfigurationReader(object):
             match = re.search(r'^}(.*)', line)
             if match:
                 if not in_fd:
-                    msg = _("Syntax error: unbalanced closing curly bracket found.")
-                    msg += " " + ( _("(file '%(file)s', line %(lnr)s)") % {'file': configfile, 'lnr': linenr})
+                    msg = _("Syntax error: unbalanced closing curly " +
+                            "bracket found.")
+                    msg += " " + ( _("(file '%(file)s', line %(lnr)s)")
+                                    % {'file': configfile, 'lnr': linenr})
                     raise LogrotateConfigurationError(msg)
                 rest = match.group(1)
                 if self.verbose > 2:
                     msg = _("End of a logfile definition.")
-                    msg += " " + ( _("(file '%(file)s', line %(lnr)s)") % {'file': configfile, 'lnr': linenr})
+                    msg += " " + ( _("(file '%(file)s', line %(lnr)s)")
+                                    % {'file': configfile, 'lnr': linenr})
                     self.logger.debug(msg)
                 if rest:
-                    msg = _("Needless content found at the end of a logfile definition found: '%s'.") \
-                            (str(rest))
-                    msg += " " + ( _("(file '%(file)s', line %(lnr)s)") % {'file': configfile, 'lnr': linenr})
+                    msg = (_("Needless content found at the end of a logfile "
+                             "definition found: '%s'.") % (str(rest)))
+                    msg += " " + ( _("(file '%(file)s', line %(lnr)s)")
+                                    % {'file': configfile, 'lnr': linenr})
                     self.logger.warning(msg)
                 # set a compress ext, if Compress is True
                 if self.new_log['compress']:
@@ -858,30 +879,36 @@ class LogrotateConfigurationReader(object):
                         elif self.new_log['compresscmd'] == 'internal_bzip2':
                             self.new_log['compressext'] = '.bz2'
                         else:
-                            msg = _("No extension for compressed logfiles given " +
-                                    "(File of definition: '%(file)s', start definition: %(rownum)d).") \
-                                  % { 'file': self.new_log['configfile'], 'rownum': self.new_log['configrow']}
+                            msg = (_("No extension for compressed logfiles " +
+                                     "given (File of definition: '%(file)s'," +
+                                     " start definition: %(rownum)d).")
+                                  % {'file': self.new_log['configfile'],
+                                     'rownum': self.new_log['configrow']})
                             raise LogrotateConfigurationError(msg)
                 # set ifempty => True, if a minsize was given
                 if self.new_log['size']:
                     self.new_log['ifempty'] = False
                 found_files = self._assign_logfiles()
                 if self.verbose > 3:
-                    self.logger.debug( ( _("New logfile definition:") + "\n" + pp.pformat(self.new_log)))
+                    msg =  _("New logfile definition:")
+                    msg += "\n" + pp.pformat(self.new_log)
+                    self.logger.debug(msg)
                 if found_files > 0:
                     if self.new_log['postrotate']:
                         script = self.new_log['postrotate']
                         if self.scripts[script]:
                             self.scripts[script].post_files += found_files
                         else:
-                            msg = _("Postrotate script '%s' not found.") % (script)
+                            msg = (_("Postrotate script '%s' not found.")
+                                    % (script))
                             self.logger.error(msg)
                     if self.new_log['lastaction']:
                         script = self.new_log['lastaction']
                         if self.scripts[script]:
                             self.scripts[script].last_files += found_files
                         else:
-                            msg = _("Lastaction script '%s' not found.") % (script)
+                            msg = (_("Lastaction script '%s' not found.")
+                                    % (script))
                             self.logger.error(msg)
                     self.config.append(self.new_log)
                 in_fd = False
@@ -991,7 +1018,8 @@ class LogrotateConfigurationReader(object):
         _ = self.t.lgettext
         if self.verbose > 4:
             msg = _("Checking line '%s' for a logrotate option.") % (line)
-            msg += " " + ( _("(file '%(file)s', line %(lnr)s)") % {'file': filename, 'lnr': linenr})
+            msg += " " + (_("(file '%(file)s', line %(lnr)s)")
+                            % {'file': filename, 'lnr': linenr})
             self.logger.debug(msg)
 
         # where to insert the option?
@@ -1014,8 +1042,8 @@ class LogrotateConfigurationReader(object):
             return False
         val = re.sub(r'^\s+$', '', val)
         if self.verbose > 4:
-            msg = _("Found option '%(opt)s' with value '%(val)s'.") \
-                    % {'opt': option, 'val': val}
+            msg = (_("Found option '%(opt)s' with value '%(val)s'.")
+                    % {'opt': option, 'val': val})
             self.logger.debug(msg)
 
         # Check for unsupported options
@@ -1035,9 +1063,9 @@ class LogrotateConfigurationReader(object):
             negated = match.group(1)
             key     = match.group(2).lower()
             if val:
-                msg = _("Found value '%(value)s' behind the boolean option "
-                         + "'%(option)s', ignoring.") \
-                        % {'value': val, 'option': option}
+                msg = (_("Found value '%(value)s' behind the boolean option " +
+                         "'%(option)s', ignoring.")
+                        % {'value': val, 'option': option})
                 msg += " " + ( _("(file '%(file)s', line %(lnr)s)")
                                 % {'file': filename, 'lnr': linenr})
                 self.logger.warning(msg)
@@ -1046,42 +1074,42 @@ class LogrotateConfigurationReader(object):
             else:
                 option_value = False
             if self.verbose > 4:
-                msg = _("Setting boolean option '%(option)s' in "
-                         + "'%(directive)s' to '%(value)s'.") \
+                msg = (_("Setting boolean option '%(option)s' in " +
+                         "'%(directive)s' to '%(value)s'.")
                          % {'option': key,
                             'directive': directive_str,
                             'value': str(option_value)
-                           }
+                           })
                 msg += " " + ( _("(file '%(file)s', line %(lnr)s)")
                                 % {'file': filename, 'lnr': linenr})
                 self.logger.debug(msg)
             directive[key] = option_value
             if key == 'copy' and option_value:
                 if directive['copytruncate']:
-                    msg = _("Option '%(by)s' disables option '%(what)'.") \
-                            % {'by': 'copy', 'what': 'copytruncate'}
+                    msg = (_("Option '%(by)s' disables option '%(what)'.")
+                            % {'by': 'copy', 'what': 'copytruncate'})
                     msg += " " + ( _("(file '%(file)s', line %(lnr)s)")
                                     % {'file': filename, 'lnr': linenr})
                     self.logger.warning(msg)
                     directive['copytruncate'] = False
                 if directive['create']['enabled']:
-                    msg = _("Option '%(by)s' disables option '%(what)'.") \
-                            % {'by': 'copy', 'what': 'create'}
+                    msg = (_("Option '%(by)s' disables option '%(what)'.")
+                            % {'by': 'copy', 'what': 'create'})
                     msg += " " + ( _("(file '%(file)s', line %(lnr)s)")
                                     % {'file': filename, 'lnr': linenr})
                     self.logger.warning(msg)
                     directive['create']['enabled'] = False
             elif key == 'copytruncate' and option_value:
                 if directive['copy']:
-                    msg = _("Option '%(by)s' disables option '%(what)'.") \
-                            % {'by': 'copytruncate', 'what': 'copy'}
+                    msg = (_("Option '%(by)s' disables option '%(what)'.")
+                            % {'by': 'copytruncate', 'what': 'copy'})
                     msg += " " + ( _("(file '%(file)s', line %(lnr)s)")
                                     % {'file': filename, 'lnr': linenr})
                     self.logger.warning(msg)
                     directive['copy'] = False
                 if directive['create']['enabled']:
-                    msg = _("Option '%(by)s' disables option '%(what)'.") \
-                            % {'by': 'copytruncate', 'what': 'create'}
+                    msg = (_("Option '%(by)s' disables option '%(what)'.")
+                            % {'by': 'copytruncate', 'what': 'create'})
                     msg += " " + ( _("(file '%(file)s', line %(lnr)s)")
                                     % {'file': filename, 'lnr': linenr})
                     self.logger.warning(msg)
@@ -1119,12 +1147,12 @@ class LogrotateConfigurationReader(object):
                 self.logger.warning(msg)
                 return False
             if self.verbose > 4:
-                msg = _("Setting integer option '%(option)s' in '%(directive)s' "
-                         + "to '%(value)s'.") \
+                msg = (_("Setting integer option '%(option)s' " +
+                         "in '%(directive)s' to '%(value)s'.")
                         % { 'option': key,
                             'directive': directive_str,
                             'value': str(option_value)
-                          }
+                          })
                 msg += " " + ( _("(file '%(file)s', line %(lnr)s)")
                                 % {'file': filename, 'lnr': linenr})
                 self.logger.debug(msg)
@@ -1138,10 +1166,10 @@ class LogrotateConfigurationReader(object):
             if negated:
                 directive['mailaddress'] = None
                 if val is not None and val != '':
-                    self.logger.warning(
-                        ( _("Senseless option value '%(value)s' after '%(option)s'.")
+                    msg = (_("Senseless option value '%(value)s' " +
+                             "after '%(option)s'.")
                             % {'value': val, 'option': option.lower()})
-                    )
+                    self.logger.warning(msg)
                     return False
                 return True
             address_list = get_address_list(val, self.verbose)
@@ -1218,25 +1246,30 @@ class LogrotateConfigurationReader(object):
         if match:
             key = match.group(1).lower()
             if in_fd:
-                self.logger.warning( ( _("Option '%s' not allowed inside a logfile directive.") %(key)))
+                msg = (_("Option '%s' not allowed inside a logfile directive.")
+                        %(key))
+                self.logger.warning(msg)
                 return False
             if key in options_with_values:
                 if self.verbose > 5:
-                    self.logger.debug( ( _("Option '%s' must have a value.") %(key)))
+                    msg = (_("Option '%s' must have a value.") % (key))
+                    self.logger.debug(msg)
                 if (val is None) or (re.search(r'^\s*$', val) is not None):
-                    self.logger.warning( ( _("Option '%s' without a value.") %(key)))
+                    msg = _("Option '%s' without a value.") % (key)
+                    self.logger.warning(msg)
                     return False
             if key in path_options:
                 if not os.path.abspath(val):
-                    self.logger.warning(
-                        ( _("Value '%(value)s' for option '%(option)s' is not an absolute path.")
-                            % {'value': val, 'option': key} )
-                    )
+                    msg = (_("Value '%(value)s' for option '%(option)s' " +
+                             "is not an absolute path.")
+                            % {'value': val, 'option': key})
+                    self.logger.warning(msg)
                     return False
             if key == 'mailfrom':
                pair = email.utils.parseaddr(val)
                if not email_valid(pair[1]):
-                    msg = _("Invalid mail address for 'mailfrom' given: '%s'.") % (val)
+                    msg = (_("Invalid mail address for 'mailfrom' " +
+                             "given: '%s'.") % (val))
                     self.logger.warning(msg)
                     return False
                val = pair
@@ -1255,18 +1288,22 @@ class LogrotateConfigurationReader(object):
                 val = port
             elif key == 'smtptls':
                 use_tls = False
-                match = re.search(r'^\s*(?:0+|false|no?)\s*$', val, re.IGNORECASE)
+                pat = r'^\s*(?:0+|false|no?)\s*$'
+                match = re.search(pat, val, re.IGNORECASE)
                 if not match:
-                    match = re.search(r'^\s*(?:1|true|y(?:es)?)\s*$', val, re.IGNORECASE)
+                    pat = r'^\s*(?:1|true|y(?:es)?)\s*$'
+                    match = re.search(pat, val, re.IGNORECASE)
                     if match:
                         use_tls = True
                     else:
                         use_tls = bool(val)
                 val = use_tls
             if self.verbose > 4:
-                msg = _("Setting global option '%(option)s' to '%(value)s'.") \
-                        % {'option': key, 'directive': directive_str}
-                msg += " " + ( _("(file '%(file)s', line %(lnr)s)") % {'file': filename, 'lnr': linenr})
+                msg = (_("Setting global option '%(option)s' " +
+                         "to '%(value)s'.")
+                        % {'option': key, 'value': val})
+                msg += " " + ( _("(file '%(file)s', line %(lnr)s)")
+                                % {'file': filename, 'lnr': linenr})
                 self.logger.debug(msg)
             self.global_option[key] = val
             return True
@@ -1277,16 +1314,20 @@ class LogrotateConfigurationReader(object):
         if match:
             key = match.group(1).lower()
             if self.verbose > 4:
-                msg = _("Checking for option 'period': key '%(key)s', value '%(value)s'.") \
-                        % {'key': key, 'value': val}
-                msg += " " + ( _("(file '%(file)s', line %(lnr)s)") % {'file': filename, 'lnr': linenr})
+                msg = (_("Checking for option 'period': key '%(key)s', " +
+                         "value '%(value)s'.")
+                        % {'key': key, 'value': val})
+                msg += " " + ( _("(file '%(file)s', line %(lnr)s)")
+                                % {'file': filename, 'lnr': linenr})
                 self.logger.debug(msg)
             option_value = 1
             if key in valid_periods:
                 if (val is not None) and (re.search(r'^\s*$', val) is None):
-                    msg = _("Option '%(option)s' may not have a value ('%(value)s').") \
-                            % {'option': key, 'value': val}
-                    msg += " " + ( _("(file '%(file)s', line %(lnr)s)") % {'file': filename, 'lnr': linenr})
+                    msg = (_("Option '%(option)s' may not have a " +
+                             "value ('%(value)s').")
+                            % {'option': key, 'value': val})
+                    msg += " " + ( _("(file '%(file)s', line %(lnr)s)")
+                                        % {'file': filename, 'lnr': linenr})
                     self.logger.warning(msg)
                 option_value = valid_periods[key]
             else:
@@ -1297,11 +1338,12 @@ class LogrotateConfigurationReader(object):
                     self.logger.warning(msg)
                     return False
             if self.verbose > 4:
-                msg = _("Setting '%(what)s' in '%(directive)s' to %(to)f days.") \
+                msg = (_("Setting '%(what)s' in '%(directive)s' " +
+                         "to %(to)f days.")
                         % { 'what': 'period',
                             'directive': directive_str,
                             'to': option_value,
-                          }
+                          })
                 msg += " " + ( _("(file '%(file)s', line %(lnr)s)")
                                 % {'file': filename, 'lnr': linenr})
                 self.logger.debug(msg)
@@ -1325,11 +1367,12 @@ class LogrotateConfigurationReader(object):
                     self.logger.warning(msg)
                     return False
             if self.verbose > 4:
-                msg = _("Setting '%(what)s' in '%(directive)s' to %(to)f days.") \
+                msg = (_("Setting '%(what)s' in '%(directive)s' " +
+                         "to %(to)f days.")
                         % { 'what': 'maxage',
                             'directive': directive_str,
                             'to': option_value,
-                          }
+                          })
                 msg += " " + ( _("(file '%(file)s', line %(lnr)s)")
                                 % {'file': filename, 'lnr': linenr})
                 self.logger.debug(msg)
@@ -1347,8 +1390,10 @@ class LogrotateConfigurationReader(object):
             dateext = None
 
             if self.verbose > 4:
-                msg = _("Checking for option 'dateext', negated: '%s'.") % (str(negated))
-                msg += " " + ( _("(file '%(file)s', line %(lnr)s)") % {'file': filename, 'lnr': linenr})
+                msg = (_("Checking for option 'dateext', negated: '%s'.")
+                        % (str(negated)))
+                msg += " " + ( _("(file '%(file)s', line %(lnr)s)")
+                                % {'file': filename, 'lnr': linenr})
                 self.logger.debug(msg)
             values = []
             if val is not None:
@@ -1363,8 +1408,9 @@ class LogrotateConfigurationReader(object):
                         re.search(r'^\s*$', first_val) is not None:
                     option_value = 'true'
                 if self.verbose > 5:
-                    msg =  _("'dateext': first_val: '%(first_val)s', option_value: '%(value)s'.") \
-                                % {'first_val': first_val, 'value': option_value}
+                    msg = (_("'dateext': first_val: '%(first_val)s', " +
+                             "option_value: '%(value)s'.")
+                            % {'first_val': first_val, 'value': option_value})
                     msg += " " + ( _("(file '%(file)s', line %(lnr)s)")
                                     % {'file': filename, 'lnr': linenr})
                     self.logger.debug(msg)
@@ -1377,11 +1423,11 @@ class LogrotateConfigurationReader(object):
                     dateext = val
 
             if self.verbose > 4:
-                msg = _("Setting '%(what)s' in '%(directive)s' to %(to)s.") \
+                msg = (_("Setting '%(what)s' in '%(directive)s' to %(to)s.")
                         % { 'what': 'dateeext',
                             'directive': directive_str,
                             'to': str(use_dateext)
-                          }
+                          })
                 msg += " " + ( _("(file '%(file)s', line %(lnr)s)")
                                 % {'file': filename, 'lnr': linenr})
                 self.logger.debug(msg)
@@ -1389,11 +1435,12 @@ class LogrotateConfigurationReader(object):
 
             if dateext is not None:
                 if self.verbose > 4:
-                    msg = _("Setting '%(what)s' in '%(directive)s' to %(to)s.") \
+                    msg = (_("Setting '%(what)s' in '%(directive)s' " +
+                             "to %(to)s.")
                             % { 'what': 'datepattern',
                                 'directive': directive_str,
                                 'to': dateext
-                            }
+                            })
                     msg += " " + ( _("(file '%(file)s', line %(lnr)s)")
                                     % {'file': filename, 'lnr': linenr})
                     self.logger.debug(msg)
@@ -1455,8 +1502,8 @@ class LogrotateConfigurationReader(object):
             # Check for create mode
             if len(values) > 0:
                 if self.verbose > 5:
-                    msg = _("Trying to determine create mode '%s' ...") \
-                            % ('values[0]')
+                    msg = (_("Trying to determine create mode '%s' ...")
+                            % ('values[0]'))
                     msg += " " + ( _("(file '%(file)s', line %(lnr)s)")
                                 % {'file': filename, 'lnr': linenr})
                     self.logger.debug(msg)
@@ -1474,8 +1521,8 @@ class LogrotateConfigurationReader(object):
             if len(values) > 1:
                 owner_raw = values[1]
                 if self.verbose > 5:
-                    msg = _("Trying to determine create owner '%s' ...") \
-                            % (owner_raw)
+                    msg = (_("Trying to determine create owner '%s' ...")
+                            % (owner_raw))
                     msg += " " + ( _("(file '%(file)s', line %(lnr)s)")
                                 % {'file': filename, 'lnr': linenr})
                     self.logger.debug(msg)
@@ -1485,8 +1532,8 @@ class LogrotateConfigurationReader(object):
                     try:
                         owner = pwd.getpwnam(owner_raw)[2]
                     except KeyError:
-                        msg = _("Invalid owner '%(owner)s' in '%(what)s'.") \
-                                    % {'owner': owner_raw, 'what': 'create'}
+                        msg = (_("Invalid owner '%(owner)s' in '%(what)s'.")
+                                % {'owner': owner_raw, 'what': 'create'})
                         self.logger.warning(msg)
                         return False
 
@@ -1494,8 +1541,8 @@ class LogrotateConfigurationReader(object):
             if len(values) > 2:
                 group_raw = values[2]
                 if self.verbose > 5:
-                    msg = _("Trying to determine create group '%s' ...") \
-                            % (group_raw)
+                    msg = (_("Trying to determine create group '%s' ...")
+                            % (group_raw))
                     msg += " " + ( _("(file '%(file)s', line %(lnr)s)")
                                 % {'file': filename, 'lnr': linenr})
                     self.logger.debug(msg)
@@ -1505,8 +1552,8 @@ class LogrotateConfigurationReader(object):
                     try:
                         group = grp.getgrnam(group_raw)[2]
                     except KeyError:
-                        msg = _("Invalid group '%(group)s' in '%(what)s'.") \
-                                    % {'group': group_raw, 'what': 'create'}
+                        msg = (_("Invalid group '%(group)s' in '%(what)s'.")
+                                    % {'group': group_raw, 'what': 'create'})
                         self.logger.warning(msg)
                         return False
 
@@ -1544,7 +1591,9 @@ class LogrotateConfigurationReader(object):
                 values = split_parts(val)
 
             # Check for dirname of olddir
-            if len(values) < 1 or values[0] is None or re.search(r'^\s*$', values[0]) is not None:
+            if ((len(values) < 1) or
+                    (values[0] is None) or
+                    (re.search(r'^\s*$', values[0]) is not None)):
                 msg = _("Option '%s' without a value given.") % ('olddir')
                 self.logger.warning(msg)
                 return False
@@ -1558,8 +1607,8 @@ class LogrotateConfigurationReader(object):
             # Check for create mode of olddir
             if len(values) > 1:
                 if self.verbose > 5:
-                    msg = _("Trying to determine olddir create mode '%s' ...") \
-                                % (values[1])
+                    msg = (_("Trying to determine olddir create " +
+                             "mode '%s' ...") % (values[1]))
                     msg += " " + ( _("(file '%(file)s', line %(lnr)s)")
                                     % {'file': filename, 'lnr': linenr})
                     self.logger.debug(msg)
@@ -1569,8 +1618,8 @@ class LogrotateConfigurationReader(object):
                 try:
                     mode = int(mode_octal, 8)
                 except ValueError:
-                    msg = _("Invalid create mode '%s' in 'olddir'.") \
-                            % (values[1])
+                    msg = (_("Invalid create mode '%s' in 'olddir'.")
+                            % (values[1]))
                     self.logger.debug(msg)
                     return False
 
@@ -1578,8 +1627,8 @@ class LogrotateConfigurationReader(object):
             if len(values) > 2:
                 owner_raw = values[2]
                 if self.verbose > 5:
-                    msg = _("Trying to determine olddir owner '%s' ...") \
-                                % (owner_raw)
+                    msg = (_("Trying to determine olddir owner '%s' ...")
+                                % (owner_raw))
                     msg += " " + ( _("(file '%(file)s', line %(lnr)s)")
                                     % {'file': filename, 'lnr': linenr})
                     self.logger.debug(msg)
@@ -1589,8 +1638,8 @@ class LogrotateConfigurationReader(object):
                     try:
                         owner = pwd.getpwnam(owner_raw)[2]
                     except KeyError:
-                        msg = _("Invalid owner '%(owner)s' in '%(what)s'.") \
-                                    % {'owner': owner_raw, 'what': 'olddir'}
+                        msg = (_("Invalid owner '%(owner)s' in '%(what)s'.")
+                                    % {'owner': owner_raw, 'what': 'olddir'})
                         self.logger.warning(msg)
                         return False
 
@@ -1598,8 +1647,8 @@ class LogrotateConfigurationReader(object):
             if len(values) > 3:
                 group_raw = values[3]
                 if self.verbose > 5:
-                    msg = _("Trying to determine olddir group '%s' ...") \
-                            % (group_raw)
+                    msg = (_("Trying to determine olddir group '%s' ...")
+                            % (group_raw))
                     msg += " " + ( _("(file '%(file)s', line %(lnr)s)")
                                     % {'file': filename, 'lnr': linenr})
                     self.logger.debug(msg)
@@ -1609,8 +1658,8 @@ class LogrotateConfigurationReader(object):
                     try:
                         group = grp.getgrnam(group_raw)[2]
                     except KeyError:
-                        msg = _("Invalid group '%(group)s' in '%(what)s'.") \
-                                    % {'group': group_raw, 'what': 'olddir'}
+                        msg = (_("Invalid group '%(group)s' in '%(what)s'.")
+                                    % {'group': group_raw, 'what': 'olddir'})
                         self.logger.warning(msg)
                         return False
 
@@ -1625,22 +1674,26 @@ class LogrotateConfigurationReader(object):
         if match:
             size_str = re.sub(r'^size(?:\s*=\s*|\s+)', '', line)
             if self.verbose > 5:
-                msg = _("Checking for option 'size', value '%s' ...") % (size_str)
+                msg = (_("Checking for option 'size', value '%s' ...")
+                        % (size_str))
                 msg += " " + ( _("(file '%(file)s', line %(lnr)s)")
                                 % {'file': filename, 'lnr': linenr})
                 self.logger.debug(msg)
             if size_str is None:
-                self.logger.warning( _("Failing size definition."))
+                msg = _("Failing size definition.")
+                self.logger.warning(msg)
                 return False
             size_bytes = None
             try:
                 size_bytes = human2bytes(size_str, verbose = self.verbose)
             except ValueError, e:
-                self.logger.warning( ( _("Invalid definition for 'size': '%s'.") %(size_str)))
+                msg = _("Invalid definition for 'size': '%s'.") % (size_str)
+                self.logger.warning(msg)
                 return False
             if self.verbose > 4:
-                msg = _("Got a rotation size in '%(directive)s' of %(bytes)d bytes.") \
-                        % {'directive': directive_str, 'bytes': size_bytes}
+                msg = (_("Got a rotation size in '%(directive)s' " +
+                         "of %(bytes)d bytes.")
+                        % {'directive': directive_str, 'bytes': size_bytes})
                 msg += " " + ( _("(file '%(file)s', line %(lnr)s)")
                                 % {'file': filename, 'lnr': linenr})
                 self.logger.debug(msg)
@@ -1653,14 +1706,17 @@ class LogrotateConfigurationReader(object):
         if match:
             key = match.group(1).lower()
             if self.verbose > 5:
-                msg = _("Checking for option 'taboo%(type)s', value: '%(value)s' ...") \
-                        % {'type': key, 'value': val}
+                msg = (_("Checking for option 'taboo%(type)s', " +
+                         "value: '%(value)s' ...")
+                        % {'type': key, 'value': val})
                 msg += " " + ( _("(file '%(file)s', line %(lnr)s)")
                                 % {'file': filename, 'lnr': linenr})
                 self.logger.debug(msg)
 
             if in_fd:
-                self.logger.warning( ( _("Option 'taboo%s' not allowed inside a logfile directive.") %(key)))
+                msg = (_("Option 'taboo%s' not allowed inside " +
+                         "a logfile directive.") % (key))
+                self.logger.warning(msg)
                 return False
 
             values = []
@@ -1673,7 +1729,8 @@ class LogrotateConfigurationReader(object):
                 values.pop(0)
 
             if len(values) < 1:
-                self.logger.warning( ( _("Option 'taboo%s' needs a value.") %(key)))
+                msg = _("Option 'taboo%s' needs a value.") % (key)
+                self.logger.warning(msg)
                 return False
 
             if not extend:
@@ -1684,7 +1741,8 @@ class LogrotateConfigurationReader(object):
             return True
 
         # Option not found, I'm angry
-        self.logger.warning( ( _("Unknown option '%s'.") %(option)))
+        msg = _("Unknown option '%s'.") % (option)
+        self.logger.warning(msg)
         return False
 
     #------------------------------------------------------------
@@ -1837,15 +1895,15 @@ class LogrotateConfigurationReader(object):
 
             item_path = os.path.abspath(os.path.join(include, item))
             if self.verbose > 2:
-                msg = _("Including item '%(item)s' ('%(path)s') ...") \
-                        % {'item': item, 'path': item_path}
+                msg = (_("Including item '%(item)s' ('%(path)s') ...")
+                        % {'item': item, 'path': item_path})
                 self.logger.debug(msg)
 
             # Skip directories
             if os.path.isdir(item_path):
                 if self.verbose > 1:
-                    msg = _("Skip subdirectory '%s' in including.") \
-                            % (item_path)
+                    msg = (_("Skip subdirectory '%s' in including.")
+                            % (item_path))
                     self.logger.debug(msg)
                 continue
 
@@ -1861,9 +1919,9 @@ class LogrotateConfigurationReader(object):
                 match = re.search(pattern, item)
                 if match:
                     if self.verbose > 1:
-                        msg = _("Item '%(item)s' is matching pattern "
-                                 + "'%(pattern)s', skiping.") \
-                                % {'item': item, 'pattern': pattern}
+                        msg = (_("Item '%(item)s' is matching pattern " +
+                                 "'%(pattern)s', skiping.")
+                                % {'item': item, 'pattern': pattern})
                         self.logger.debug(msg)
                     taboo_found = True
                     break
@@ -1918,7 +1976,13 @@ class LogrotateConfigurationReader(object):
             raise LogrotateConfigurationError(msg)
 
     #------------------------------------------------------------
-    def _start_log_script_definition( self, script_type, script_name, line, filename, in_fd, linenr):
+    def _start_log_script_definition( self,
+                                      script_type,
+                                      script_name,
+                                      line,
+                                      filename,
+                                      in_fd,
+                                      linenr):
         '''
         Starts a new logfile definition or logfile refrence
         inside a logfile definition.
@@ -1945,8 +2009,8 @@ class LogrotateConfigurationReader(object):
         _ = self.t.lgettext
 
         if not in_fd:
-            msg = _("Directive '%s' is not allowed outside of a logfile "
-                     + "definition.") % (script_type)
+            msg = _("Directive '%s' is not allowed outside of a " +
+                    "logfile definition.") % (script_type)
             msg += " " + ( _("(file '%(file)s', line %(lnr)s)")
                             % {'file': filename, 'lnr': linenr})
             raise LogrotateConfigurationError(msg)
@@ -2075,7 +2139,8 @@ class LogrotateConfigurationReader(object):
         If a logfile was even defined, a warning is omitted and the
         new definition will thrown away.
 
-        @return: number of found logfiles according to self.new_log['file_patterns']
+        @return: number of found logfiles according
+                 to self.new_log['file_patterns']
         @rtype:  int
         '''
 
@@ -2102,9 +2167,9 @@ class LogrotateConfigurationReader(object):
                 continue
             for logfile in logfiles:
                 if self.verbose > 1:
-                    msg = _("Found logfile '%(file)s for pattern "
-                             + "'%(pattern)s'.") \
-                           % {'file': logfile, 'pattern': pattern }
+                    msg = (_("Found logfile '%(file)s for pattern " +
+                             "'%(pattern)s'.")
+                           % {'file': logfile, 'pattern': pattern })
                     self.logger.debug(msg)
                 if logfile in self.defined_logfiles:
                     f = self.defined_logfiles[logfile]
@@ -2118,8 +2183,7 @@ class LogrotateConfigurationReader(object):
                     self.logger.warning(msg)
                     continue
                 if self.verbose > 1:
-                    msg = _("Logfile '%s' will taken.") \
-                            % (logfile)
+                    msg = _("Logfile '%s' will taken.") % (logfile)
                 self.defined_logfiles[logfile] = {
                         'file': self.new_log['configfile'],
                         'rownum': self.new_log['configrow'],
index e44dc210afe104395a65a818d47bab1af259d0a3..ca0ad178fe576535629cdcc2161f5b747f53d938 100755 (executable)
@@ -13,6 +13,7 @@
 @summary: Option parser for Python logrotating
 '''
 
+# Standard modules
 import re
 import sys
 import os.path
@@ -23,6 +24,9 @@ from optparse import OptionParser
 from optparse import OptionGroup
 from optparse import OptionConflictError
 
+# Third party modules
+
+# Own modules
 try:
     import LogRotate.Common
 except ImportError:
index 953b75e7e9dc4072e2f1cb2b0051d4c9d10dc40c..a34ccd19b92f6b06e3e017b9eb3d25210121337a 100755 (executable)
@@ -15,6 +15,7 @@
 
 # Für Terminal-Dinge: http://code.activestate.com/recipes/475116/
 
+# Standard modules
 import re
 import sys
 import gettext
@@ -33,6 +34,10 @@ import gzip
 import bz2
 import zipfile
 
+# Third party modules
+import pytz
+
+# Own modules
 try:
     import LogRotate.Common
 except ImportError:
@@ -44,7 +49,7 @@ from LogRotate.Config import LogrotateConfigurationReader
 
 from LogRotate.StatusFile import LogrotateStatusFileError
 from LogRotate.StatusFile import LogrotateStatusFile
-from LogRotate.StatusFile import utc
+#from LogRotate.StatusFile import utc
 
 from LogRotate.Mailer import LogRotateMailerError
 from LogRotate.Mailer import LogRotateMailer
@@ -60,6 +65,7 @@ __contact__    = 'frank@brehm-online.com'
 __version__    = '0.4.0 ' + revision
 __license__    = 'GPL3'
 
+utc = pytz.utc
 
 #========================================================================
 
index f00c82fae888dabffcee9ec26efdff6a1d8c2457..957c839fe0d3012554d3b29192f466e43ef3b12c 100755 (executable)
@@ -14,6 +14,7 @@
           rotated logfiles per mail to a reciepient
 '''
 
+# Standard modules
 import re
 import logging
 import pprint
@@ -38,6 +39,9 @@ from email.mime.text import MIMEText
 
 from quopri import encodestring as _encodestring
 
+# Third party modules
+
+# Own modules
 try:
     import LogRotate.Common
 except ImportError:
index ac129be84015ce260d5a0faf72dce01efe9e2e8e..74ca05834bdf4fbf02d5607aa73b265e7da8f567 100755 (executable)
 @summary: module for a logrotate script object
          (for pre- and postrotate actions)
 '''
+
+# Standard modules
 import re
 import logging
 import subprocess
 import pprint
 import gettext
 
+# Third party modules
+
+# Own modules
+
 revision = '$Revision$'
 revision = re.sub( r'\$', '', revision )
 revision = re.sub( r'Revision: ', r'r', revision )
index 883b25e719ef28a7776f77b4de5e17bbd9180070..5c2abb33a21bddd8126610bff99b0c6e6bdde612 100755 (executable)
@@ -13,6 +13,7 @@
 @summary: module for operations with the logrotate state file
 '''
 
+# Standard modules
 import re
 import sys
 import os
@@ -23,6 +24,10 @@ import pprint
 
 from datetime import tzinfo, timedelta, datetime, date, time
 
+# Third party modules
+import pytz
+
+# Own modules
 try:
     import LogRotate.Common
 except ImportError:
@@ -42,6 +47,8 @@ __contact__    = 'frank@brehm-online.com'
 __version__    = '0.1.0 ' + revision
 __license__    = 'GPL3'
 
+utc = pytz.utc
+
 #========================================================================
 
 class LogrotateStatusFileError(Exception):
@@ -49,25 +56,6 @@ class LogrotateStatusFileError(Exception):
     Base class for exceptions in this module.
     '''
 
-#========================================================================
-
-ZERO = timedelta(0)
-
-class UTC(tzinfo):
-    """UTC"""
-
-    def utcoffset(self, dt):
-        return ZERO
-
-    def tzname(self, dt):
-        return "UTC"
-
-    def dst(self, dt):
-        return ZERO
-
-utc = UTC()
-
-
 #========================================================================
 
 class LogrotateStatusFile(object):
@@ -230,7 +218,8 @@ class LogrotateStatusFile(object):
     def get_rotation_date(self, logfile):
         '''
         Gives back the date of the last rotation of a particular logfile.
-        If this logfile is not found in the state file, datetime.min() is given back.
+        If this logfile is not found in the state file,
+        datetime.min() is given back.
 
         @param logfile: the logfile to query
         @type logfile:  str
@@ -308,7 +297,8 @@ class LogrotateStatusFile(object):
         # Big try block for ensure closing open status file
         try:
 
-            msg = _("Open status file '%s' for writing ...") % (self.file_name)
+            msg = _("Open status file '%s' for writing ...") \
+                    % (self.file_name)
             self.logger.debug(msg)
 
             # open status file for writing
@@ -316,7 +306,8 @@ class LogrotateStatusFile(object):
                 try:
                     fd = open(self.file_name, 'w')
                 except IOError, e:
-                    msg = _("Could not open status file '%s' for write: ") % (self.file_name) + str(e)
+                    msg = _("Could not open status file '%s' for write: ") \
+                            % (self.file_name) + str(e)
                     raise LogrotateStatusFileError(msg)
 
             # write logrotate version line
@@ -331,14 +322,23 @@ class LogrotateStatusFile(object):
                 fd.write(line)
 
             # iterate over logfiles in self.file_state
-            for logfile in sorted(self.file_state.keys(), lambda x,y: cmp(x.lower(), y.lower())):
+            for logfile in sorted(
+                    self.file_state.keys(),
+                    lambda x,y: cmp(x.lower(), y.lower())):
                 rotate_date = self.file_state[logfile]
-                date_str = "%d-%d-%d" % (rotate_date.year, rotate_date.month, rotate_date.day)
+                date_str = ( "%d-%d-%d" 
+                    % (rotate_date.year, rotate_date.month, rotate_date.day))
                 if self.status_version == 3:
-                    date_str = ( "%d-%02d-%02d_%02d:%02d:%02d" %
-                                (rotate_date.year, rotate_date.month, rotate_date.day,
-                                 rotate_date.hour, rotate_date.minute, rotate_date.second))
-                line = '%-*s %s' % (max_length, ('"' + logfile + '"'), date_str)
+                    date_str = (
+                        "%d-%02d-%02d_%02d:%02d:%02d" % (
+                            rotate_date.year,
+                            rotate_date.month,
+                            rotate_date.day,
+                            rotate_date.hour,
+                            rotate_date.minute,
+                            rotate_date.second))
+                line = ('%-*s %s'
+                        % (max_length, ('"' + logfile + '"'), date_str))
                 if self.verbose > 2:
                     msg = _("Writing line '%s'.") % (line)
                     self.logger.debug(msg)
@@ -377,7 +377,8 @@ class LogrotateStatusFile(object):
         '''
 
         _ = self.t.lgettext
-        msg = _("Checking permissions of status file '%s' ...") % (self.file_name)
+        msg = (_("Checking permissions of status file '%s' ...")
+                % (self.file_name))
         self.logger.debug(msg)
 
         if os.path.exists(self.file_name):
@@ -387,7 +388,8 @@ class LogrotateStatusFile(object):
                 self.logger.debug(msg)
                 return True
             else:
-                msg = _("No write access to status file '%s'.") % (self.file_name)
+                msg = (_("No write access to status file '%s'.")
+                        % (self.file_name))
                 if self.test_mode:
                     self.logger.error(msg)
                 else:
@@ -395,7 +397,8 @@ class LogrotateStatusFile(object):
                 return False
 
         parent_dir = os.path.dirname(self.file_name)
-        msg = _("Checking permissions of parent directory '%s' ...") % (parent_dir)
+        msg = (_("Checking permissions of parent directory '%s' ...")
+                % (parent_dir))
         self.logger.debug(msg)
 
         # Check for existence of parent dir
@@ -409,8 +412,9 @@ class LogrotateStatusFile(object):
 
         # Check whether parent dir is a directory
         if not os.path.isdir(parent_dir):
-            msg = _("Parent directory '%(dir)s' of status file '%(file)s' is not a directory.") \
-                    % {'dir': parent_dir, 'file': self.file_name }
+            msg = (_("Parent directory '%(dir)s' of status file '%(file)s' "
+                     + "is not a directory.") 
+                    % {'dir': parent_dir, 'file': self.file_name })
             if self.test_mode:
                 self.logger.error(msg)
             else:
@@ -419,8 +423,9 @@ class LogrotateStatusFile(object):
 
         # Check for write access to parent dir
         if not os.access(parent_dir, os.W_OK):
-            msg = _("No write access to parent directory '%(dir)s' of status file '%(file)s'.") \
-                    % {'dir': parent_dir, 'file': self.file_name }
+            msg = (_("No write access to parent directory '%(dir)s' "
+                     + "of status file '%(file)s'.")
+                    % {'dir': parent_dir, 'file': self.file_name })
             if self.test_mode:
                 self.logger.error(msg)
             else:
@@ -435,7 +440,8 @@ class LogrotateStatusFile(object):
     def read(self, must_exists = True):
         '''
         Reads the status file and put the results in the dict self.file_state.
-        Puts back the absolute path of the status file in self.file_name on success.
+        Puts back the absolute path of the status file
+        in self.file_name on success.
 
         Throws a LogrotateStatusFileError on a error.
 
@@ -464,12 +470,14 @@ class LogrotateStatusFile(object):
             self.file_name = os.path.abspath(self.file_name)
             self.file_name_is_absolute = True
             if self.verbose > 2:
-                msg = _("Absolute path of status file is now '%s'.") % (self.file_name)
+                msg = (_("Absolute path of status file is now '%s'.")
+                        % (self.file_name))
                 self.logger.debug(msg)
 
         # Checks, that the status file is a regular file
         if not os.path.isfile(self.file_name):
-            msg = _("Status file '%s' is not a regular file.") % (self.file_name)
+            msg = (_("Status file '%s' is not a regular file.")
+                    % (self.file_name))
             raise LogrotateStatusFileError(msg)
             return False
 
@@ -480,7 +488,8 @@ class LogrotateStatusFile(object):
         try:
             fd = open(self.file_name, 'Ur')
         except IOError, e:
-            msg = _("Could not read status file '%s': ") % (self.file_name) + str(e)
+            msg = (_("Could not read status file '%s': ")
+                    % (self.file_name)) + str(e)
             raise LogrotateStatusFileError(msg)
         self.fd = fd
 
@@ -491,8 +500,7 @@ class LogrotateStatusFile(object):
                 i += 1
                 line = line.strip()
                 if self.verbose > 4:
-                    msg = _("Performing status file line '%s'.") \
-                            % (line)
+                    msg = _("Performing status file line '%s'.") % (line)
                     msg += " " + ( _("(file '%(file)s', line %(lnr)s)")
                                         % {'file': self.file_name, 'lnr': i})
                     self.logger.debug(msg)
@@ -507,15 +515,15 @@ class LogrotateStatusFile(object):
                         # Correct file header
                         self.status_version = int(match.group(1))
                         if self.verbose > 1:
-                            msg = _("Idendified version of status file: %d") \
-                                    % (self.status_version)
+                            msg = (_("Idendified version of status file: %d")
+                                    % (self.status_version))
                             self.logger.debug(msg)
                         continue
                     else:
                         # Wrong header
-                        msg = _("Incompatible version of status file "
-                                 + "'%(file)s': %(header)s") \
-                                % { 'file': self.file_name, 'header': line }
+                        msg = (_("Incompatible version of status file "
+                                 + "'%(file)s': %(header)s")
+                                % { 'file': self.file_name, 'header': line })
                         fd.close()
                         raise LogrotateStatusFileError(msg)
 
@@ -526,16 +534,18 @@ class LogrotateStatusFile(object):
                 logfile = parts[0]
                 rdate   = parts[1]
                 if self.verbose > 2:
-                    msg = _("Found logfile '%(file)s' with rotation "
-                             + "date '%(date)s'.") \
-                            % { 'file': logfile, 'date': rdate }
+                    msg = (_("Found logfile '%(file)s' with rotation "
+                             + "date '%(date)s'.")
+                            % { 'file': logfile, 'date': rdate })
                     self.logger.debug(msg)
 
                 if logfile and rdate:
-                    match = re.search(r'\s*(\d+)[_\-](\d+)[_\-](\d+)(?:[\s\-_]+(\d+)[_\-:](\d+)[_\-:](\d+))?', rdate)
+                    pat = (r'\s*(\d+)[_\-](\d+)[_\-](\d+)' +
+                           r'(?:[\s\-_]+(\d+)[_\-:](\d+)[_\-:](\d+))?')
+                    match = re.search(pat, rdate)
                     if not match:
-                        msg = _("Could not determine date format: '%s'.") \
-                                % (rdate)
+                        msg = (_("Could not determine date format: '%s'.")
+                                % (rdate))
                         msg += " " + ( _("(file '%(file)s', line %(lnr)s)")
                                             % {'file': logfile, 'lnr': i})
                         self.logger.warning(msg)
@@ -571,8 +581,8 @@ class LogrotateStatusFile(object):
 
                 else:
 
-                    msg = _("Neither a logfile nor a date found in line '%s'.") \
-                            % (line)
+                    msg = (_("Neither a logfile nor a date found " +
+                             "in line '%s'.") % (line))
                     msg += " " + ( _("(file '%(file)s', line %(lnr)s)")
                                         % {'file': logfile, 'lnr': i})
                     self.logger.warning(msg)
index 1e53b9c6e76072c671cc4ab59cf1457d3be6ef0c..2d4e1e9e87e2fe18fe68aa352dacb5e4c0478ae2 100755 (executable)
@@ -13,6 +13,7 @@
 @summary: rotates and compress system logs
 '''
 
+# Standard modules
 import re
 import sys
 import pprint
@@ -21,6 +22,9 @@ import os
 import os.path
 from datetime import datetime
 
+# Third party modules
+
+# Own modules
 from LogRotate.Getopts import LogrotateOptParser
 from LogRotate.Getopts import LogrotateOptParserError
 
index 7f7f0f26b0e8edc7996bf436e8efda825f2ebf96..3b77216b99d9543bf9dea40c3ac2297f89ad4f7b 100644 (file)
@@ -11,7 +11,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: pylogrotate 0.6.0\n"
 "Report-Msgid-Bugs-To: frank@brehm-online.com\n"
-"POT-Creation-Date: 2011-07-15 09:46+0200\n"
+"POT-Creation-Date: 2011-07-15 11:51+0200\n"
 "PO-Revision-Date: 2011-07-15 10:05+0200\n"
 "Last-Translator: Frank Brehm <frank@brehm-online.com>\n"
 "Language-Team: de <LL@li.org>\n"
@@ -21,112 +21,112 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Generated-By: Babel 0.9.6\n"
 
-#: LogRotate/Getopts.py:120
+#: LogRotate/Getopts.py:124
 #, python-format
 msgid "%s [options] <configfile>"
 msgstr "%s [Optionen] <Konfigurationsdatei>"
 
-#: LogRotate/Config.py:491 LogRotate/Config.py:504 LogRotate/Config.py:515
+#: LogRotate/Config.py:496 LogRotate/Config.py:509 LogRotate/Config.py:523
 #, python-format
 msgid "'%s' is not a directory."
 msgstr "»%s« ist kein Verzeichnis."
 
-#: LogRotate/Config.py:710
+#: LogRotate/Config.py:725
 #, python-format
 msgid "'%s' is not a regular file."
 msgstr "»%s« ist keine reguläre Datei."
 
-#: LogRotate/Config.py:1366
+#: LogRotate/Config.py:1411
 #, python-format
 msgid "'dateext': first_val: '%(first_val)s', option_value: '%(value)s'."
 msgstr "»dateext«: first_val: »%(first_val)s«, option_value: »%(value)s«."
 
-#: LogRotate/Config.py:769 LogRotate/Config.py:791 LogRotate/Config.py:815
-#: LogRotate/Config.py:839 LogRotate/Config.py:844 LogRotate/Config.py:849
-#: LogRotate/Config.py:899 LogRotate/Config.py:919 LogRotate/Config.py:942
-#: LogRotate/Config.py:949 LogRotate/Config.py:994 LogRotate/Config.py:1026
-#: LogRotate/Config.py:1041 LogRotate/Config.py:1055 LogRotate/Config.py:1063
-#: LogRotate/Config.py:1070 LogRotate/Config.py:1078 LogRotate/Config.py:1085
-#: LogRotate/Config.py:1128 LogRotate/Config.py:1160 LogRotate/Config.py:1179
-#: LogRotate/Config.py:1269 LogRotate/Config.py:1282 LogRotate/Config.py:1289
-#: LogRotate/Config.py:1305 LogRotate/Config.py:1333 LogRotate/Config.py:1351
-#: LogRotate/Config.py:1368 LogRotate/Config.py:1385 LogRotate/Config.py:1397
-#: LogRotate/Config.py:1414 LogRotate/Config.py:1421 LogRotate/Config.py:1430
-#: LogRotate/Config.py:1439 LogRotate/Config.py:1460 LogRotate/Config.py:1479
-#: LogRotate/Config.py:1499 LogRotate/Config.py:1529 LogRotate/Config.py:1536
-#: LogRotate/Config.py:1563 LogRotate/Config.py:1583 LogRotate/Config.py:1603
-#: LogRotate/Config.py:1629 LogRotate/Config.py:1644 LogRotate/Config.py:1658
-#: LogRotate/Config.py:1717 LogRotate/Config.py:1726 LogRotate/Config.py:1735
+#: LogRotate/Config.py:786 LogRotate/Config.py:808 LogRotate/Config.py:832
+#: LogRotate/Config.py:857 LogRotate/Config.py:863 LogRotate/Config.py:869
+#: LogRotate/Config.py:926 LogRotate/Config.py:946 LogRotate/Config.py:969
+#: LogRotate/Config.py:976 LogRotate/Config.py:1021 LogRotate/Config.py:1054
+#: LogRotate/Config.py:1069 LogRotate/Config.py:1083 LogRotate/Config.py:1091
+#: LogRotate/Config.py:1098 LogRotate/Config.py:1106 LogRotate/Config.py:1113
+#: LogRotate/Config.py:1156 LogRotate/Config.py:1188 LogRotate/Config.py:1207
+#: LogRotate/Config.py:1305 LogRotate/Config.py:1320 LogRotate/Config.py:1329
+#: LogRotate/Config.py:1347 LogRotate/Config.py:1376 LogRotate/Config.py:1395
+#: LogRotate/Config.py:1414 LogRotate/Config.py:1431 LogRotate/Config.py:1444
+#: LogRotate/Config.py:1461 LogRotate/Config.py:1468 LogRotate/Config.py:1477
+#: LogRotate/Config.py:1486 LogRotate/Config.py:1507 LogRotate/Config.py:1526
+#: LogRotate/Config.py:1546 LogRotate/Config.py:1576 LogRotate/Config.py:1583
+#: LogRotate/Config.py:1612 LogRotate/Config.py:1632 LogRotate/Config.py:1652
+#: LogRotate/Config.py:1679 LogRotate/Config.py:1697 LogRotate/Config.py:1712
 #: LogRotate/Config.py:1775 LogRotate/Config.py:1784 LogRotate/Config.py:1793
-#: LogRotate/Config.py:1804 LogRotate/Config.py:1817 LogRotate/Config.py:1826
-#: LogRotate/Config.py:1876 LogRotate/Config.py:1909 LogRotate/Config.py:1916
-#: LogRotate/Config.py:1950 LogRotate/StatusFile.py:496
-#: LogRotate/StatusFile.py:539 LogRotate/StatusFile.py:565
-#: LogRotate/StatusFile.py:576
+#: LogRotate/Config.py:1833 LogRotate/Config.py:1842 LogRotate/Config.py:1851
+#: LogRotate/Config.py:1862 LogRotate/Config.py:1875 LogRotate/Config.py:1884
+#: LogRotate/Config.py:1934 LogRotate/Config.py:1967 LogRotate/Config.py:1974
+#: LogRotate/Config.py:2014 LogRotate/StatusFile.py:504
+#: LogRotate/StatusFile.py:549 LogRotate/StatusFile.py:575
+#: LogRotate/StatusFile.py:586
 #, python-format
 msgid "(file '%(file)s', line %(lnr)s)"
 msgstr "(Datei »%(file)s«, Zeile %(lnr)s)"
 
-#: LogRotate/StatusFile.py:467
+#: LogRotate/StatusFile.py:473
 #, python-format
 msgid "Absolute path of status file is now '%s'."
 msgstr "Der absolute Pfad der Statusdatei ist jetzt »%s«."
 
-#: LogRotate/StatusFile.py:386
+#: LogRotate/StatusFile.py:387
 #, python-format
 msgid "Access to status file '%s' is OK."
 msgstr "Zugriff auf Statusdatei »%s« ist okay."
 
-#: logrotate.py:79
+#: logrotate.py:83
 msgid "Arguments"
 msgstr "Argumente"
 
-#: LogRotate/Common.py:303
+#: LogRotate/Common.py:313
 #, python-format
 msgid "Called with '%s'."
 msgstr "Aufgerufen mit »%s«."
 
-#: LogRotate/Handler.py:1799
+#: LogRotate/Handler.py:1805
 #, python-format
 msgid "Check, whether logfile '%s' should rotated."
 msgstr "Überprüfe, ob die Logdatei »%s« rotiert werden muß."
 
-#: LogRotate/Handler.py:1191
+#: LogRotate/Handler.py:1197
 #, python-format
 msgid "Checking file '%s' for deleting ..."
 msgstr "Überprüfe Datei »%s« für Löschen ..."
 
-#: LogRotate/Config.py:1413 LogRotate/Config.py:1528
+#: LogRotate/Config.py:1460 LogRotate/Config.py:1575
 #, python-format
 msgid "Checking for option '%s' ..."
 msgstr "Teste auf Option »%s« ..."
 
-#: LogRotate/Config.py:1350
+#: LogRotate/Config.py:1393
 #, python-format
 msgid "Checking for option 'dateext', negated: '%s'."
 msgstr "Überprüfe Option »dateext«, negiert: »%s«."
 
-#: LogRotate/Config.py:1280
+#: LogRotate/Config.py:1317
 #, python-format
 msgid "Checking for option 'period': key '%(key)s', value '%(value)s'."
 msgstr "Überprüfe Option »period«: Schlüssel »%(key)s«, Wert »%(value)s«."
 
-#: LogRotate/Config.py:1628
+#: LogRotate/Config.py:1677
 #, python-format
 msgid "Checking for option 'size', value '%s' ..."
 msgstr "Überprüfe Option »size«, Wert »%s« ..."
 
-#: LogRotate/Config.py:1656
+#: LogRotate/Config.py:1709
 #, python-format
 msgid "Checking for option 'taboo%(type)s', value: '%(value)s' ..."
 msgstr "Überprüfe Option »taboo%(type)s«, Wert »%(value)s« ..."
 
-#: LogRotate/Config.py:993
+#: LogRotate/Config.py:1020
 #, python-format
 msgid "Checking line '%s' for a logrotate option."
 msgstr "Überprüfe Zeile »%s« nach einer Logrotate-Option."
 
-#: LogRotate/StatusFile.py:398
+#: LogRotate/StatusFile.py:400
 #, python-format
 msgid "Checking permissions of parent directory '%s' ..."
 msgstr "Überprüfe Rechte auf übergeordnetes Verzeichnis »%s« ..."
@@ -136,12 +136,12 @@ msgstr "Überprüfe Rechte auf übergeordnetes Verzeichnis »%s« ..."
 msgid "Checking permissions of status file '%s' ..."
 msgstr "Überprüfe Rechte auf Statusdatei »%s« ..."
 
-#: LogRotate/Script.py:531
+#: LogRotate/Script.py:537
 #, python-format
 msgid "Checking, whether the script '%s' should be executed."
 msgstr "Überprüfe, ob das Skript »%s« noch ausgeführt werden muß."
 
-#: LogRotate/Getopts.py:227
+#: LogRotate/Getopts.py:231
 msgid ""
 "Checks only the given configuration file and does nothing. Conflicts with"
 " -f."
@@ -149,17 +149,17 @@ msgstr ""
 "Überprüft nur die gegebene Konfigurationsdatei und führt nichts aus. "
 "Beißt sich mit -f."
 
-#: LogRotate/Script.py:499
+#: LogRotate/Script.py:505
 #, python-format
 msgid "Child in script '%(name)s' was terminated by signal %(retcode)d."
 msgstr "Kindprozeß in Skript »%(name)s« wurde durch Signal %(retcode)d beendet."
 
-#: LogRotate/Handler.py:1763
+#: LogRotate/Handler.py:1769
 #, python-format
 msgid "Child was terminated by signal %d."
 msgstr "Kindprozess wurde durch Signal %d beendet."
 
-#: LogRotate/Getopts.py:255
+#: LogRotate/Getopts.py:259
 msgid ""
 "Command to send mail (instead of using SMTP or the predefined sendmail "
 "command)."
@@ -167,27 +167,27 @@ msgstr ""
 "Befehl zum Mailversand (anstelle der Verwendung von SMTP oder des "
 "vordefinierten sendmail-Befehls)"
 
-#: LogRotate/Getopts.py:267
+#: LogRotate/Getopts.py:271
 msgid "Common options"
 msgstr "Allgemeine Optionen"
 
-#: LogRotate/Config.py:1206
+#: LogRotate/Config.py:1234
 #, python-format
 msgid "Compress command '%s' not found."
 msgstr "Das Komprimierungskommando »%s« wurde nicht gefunden."
 
-#: LogRotate/Handler.py:2018
+#: LogRotate/Handler.py:2024
 #, python-format
 msgid "Compress options: '%s'."
 msgstr "Komprimierungsoptionen: »%s«."
 
-#: LogRotate/Handler.py:1948
+#: LogRotate/Handler.py:1954
 #, python-format
 msgid "Compressing file '%(file)s' to '%(target)s' with '%(cmd)s' ..."
 msgstr "Komprimiere Datei »%(file)s« zu »%(target)s« mit »%(cmd)s« ..."
 
-#: LogRotate/Handler.py:2210 LogRotate/Handler.py:2277
-#: LogRotate/Handler.py:2352
+#: LogRotate/Handler.py:2216 LogRotate/Handler.py:2283
+#: LogRotate/Handler.py:2358
 #, python-format
 msgid ""
 "Compressing source '%(source)s' to target '%(target)s' with module "
@@ -196,7 +196,7 @@ msgstr ""
 "Komprimiere Quelldatei »%(source)s« zu Zieldatei »%(target)s« mit Modul "
 "»%(module)s«."
 
-#: LogRotate/Handler.py:1990
+#: LogRotate/Handler.py:1996
 #, python-format
 msgid ""
 "Compressing source '%(source)s' to target'%(target)s' with command "
@@ -205,38 +205,38 @@ msgstr ""
 "Komprimiere Quelldatei »%(source)s« zu Zieldatei »%(target)s« mit "
 "Kommando »%(cmd)s«."
 
-#: LogRotate/Handler.py:1904
+#: LogRotate/Handler.py:1910
 msgid "Compression of all uncompressed logfiles ..."
 msgstr "Komprimierung aller unkomprimierten Logdateien ..."
 
-#: LogRotate/Handler.py:1118
+#: LogRotate/Handler.py:1124
 #, python-format
 msgid "Compression of file '%s' will be delayed."
 msgstr "Die Komprimierung der Datei »%s« wird verschoben."
 
-#: logrotate.py:107
+#: logrotate.py:111
 msgid "Configuration check only."
 msgstr "Nur Überprüfung der Konfiguration."
 
-#: LogRotate/Handler.py:491
+#: LogRotate/Handler.py:497
 msgid "Configuration reader object structure"
 msgstr "Objektstruktur des Konfigurtionslesers"
 
-#: LogRotate/Handler.py:2101
+#: LogRotate/Handler.py:2107
 #, python-format
 msgid "Copying all file metadata to target '%s' ..."
 msgstr "Kopiere alle Datei-Metadaten zu Zielobjekt »%s« ..."
 
-#: LogRotate/Handler.py:925
+#: LogRotate/Handler.py:931
 #, python-format
 msgid "Copying file '%(from)s' => '%(to)s'."
 msgstr "Kopiere Datei »%(from)s« => »%(to)s«."
 
-#: LogRotate/Handler.py:2168
+#: LogRotate/Handler.py:2174
 msgid "Copying ownership from source to target."
 msgstr "Kopiere Besitzerschaft von Quell- zu Zielobjekt."
 
-#: LogRotate/Handler.py:2117
+#: LogRotate/Handler.py:2123
 #, python-format
 msgid ""
 "Copying permissions and timestamps from source '%(src)s' to target "
@@ -245,418 +245,418 @@ msgstr ""
 "Kopiere Rechte und Zeitstempel von Quellobjekt »%(src)s« zu Zielojekt "
 "»%(target)s«."
 
-#: LogRotate/Config.py:1012
+#: LogRotate/Config.py:1040
 #, python-format
 msgid "Could not detect option in line '%s'."
 msgstr "Konnte keine Option in Zeile »%s« ermitteln."
 
-#: LogRotate/Common.py:212
+#: LogRotate/Common.py:221
 #, python-format
 msgid "Could not determine bytes in '%s'."
 msgstr "Konnte keine Bytes in »%s« feststellen."
 
-#: LogRotate/StatusFile.py:537
+#: LogRotate/StatusFile.py:547
 #, python-format
 msgid "Could not determine date format: '%s'."
 msgstr "Konnte kein Datumsformat erkennen: »%s«."
 
-#: LogRotate/StatusFile.py:319
+#: LogRotate/StatusFile.py:309
 #, python-format
 msgid "Could not open status file '%s' for write: "
 msgstr "Konnte Statusdatei »%s« nicht zum Schreiben öffnen: "
 
-#: LogRotate/Config.py:720
+#: LogRotate/Config.py:737
 #, python-format
 msgid "Could not read configuration file '%s'"
 msgstr "Konnte Konfigurationsdatei »%s« nicht lesen"
 
-#: LogRotate/Handler.py:350
+#: LogRotate/Handler.py:356
 msgid "Could not read configuration."
 msgstr "Konnte Konfiguration nicht lesen."
 
-#: LogRotate/StatusFile.py:483
+#: LogRotate/StatusFile.py:491
 #, python-format
 msgid "Could not read status file '%s': "
 msgstr "Konnte Statusdatei »%s« nicht lesen: "
 
-#: LogRotate/Common.py:251
+#: LogRotate/Common.py:261
 #, python-format
 msgid "Couldn't detect prefix '%s'."
 msgstr "Konnte keinen Präfix in »%s« ermitteln."
 
-#: LogRotate/Handler.py:579
+#: LogRotate/Handler.py:585
 #, python-format
 msgid "Couldn't open PID file '%(file)s' for reading: %(msg)s"
 msgstr "Konnte PID-Datei »%(file)s« nicht zum Lesen öffnen: %(msg)s"
 
-#: LogRotate/Handler.py:653
+#: LogRotate/Handler.py:659
 #, python-format
 msgid "Couldn't open PID file '%(file)s' for writing: %(msg)s"
 msgstr "Konnte PID-Datei »%(file)s« nicht zum Schreiben öffnen: %(msg)s"
 
-#: LogRotate/Handler.py:1696
+#: LogRotate/Handler.py:1702
 #, python-format
 msgid "Create permissions: %(mode)4o, Owner-UID: %(uid)d, Group-GID: %(gid)d"
 msgstr "Erstellungsrechte: %(mode)4o, Besitzer-UID: %(uid)d, Besitzer-GID: %(gid)d"
 
-#: LogRotate/Handler.py:1684
+#: LogRotate/Handler.py:1690
 #, python-format
 msgid "Creating directory '%s' ..."
 msgstr "Erstelle Verzeichnis »%s« ..."
 
-#: LogRotate/Handler.py:1654
+#: LogRotate/Handler.py:1660
 #, python-format
 msgid "Creating olddir '%s' recursive ..."
 msgstr "Erstelle Olddir-Verzeichnis »%s« rekursiv ..."
 
-#: LogRotate/Handler.py:1194
+#: LogRotate/Handler.py:1200
 #, python-format
 msgid "Current count: %(count)d, current age: %(age)d seconds"
 msgstr "Aktuelle Anzahl: %(count)d, aktuelles Alter: %(age)d Sekunden"
 
-#: LogRotate/Handler.py:1473
+#: LogRotate/Handler.py:1479
 #, python-format
 msgid "Cyclic rotation from '%(from)s' to '%(to)s'."
 msgstr "Zyklische Rotation von »%(from)s« zu »%(to)s«."
 
-#: LogRotate/Handler.py:1840
+#: LogRotate/Handler.py:1846
 #, python-format
 msgid "Date of last rotation: %s."
 msgstr "Zeitpunkt der letzten Rotation: %s."
 
-#: LogRotate/Handler.py:1857
+#: LogRotate/Handler.py:1863
 #, python-format
 msgid "Date of next rotation '%(next)s' is in future, rotation not necessary."
 msgstr ""
 "Der Zeitpunkt der nächsten Rotation »%(next)s« liegt in der Zukunft, eine"
 " Rotation ist deshalb nicht notwendig."
 
-#: LogRotate/Handler.py:1844
+#: LogRotate/Handler.py:1850
 #, python-format
 msgid "Date of next rotation: %s."
 msgstr "Zeitpunkt der nächsten Rotation: %s."
 
-#: LogRotate/Handler.py:1202
+#: LogRotate/Handler.py:1208
 #, python-format
 msgid "Deleting '%s' because of too much."
 msgstr "Lösche Datei »%s«, weil: zuviel."
 
-#: LogRotate/Handler.py:1211
+#: LogRotate/Handler.py:1217
 #, python-format
 msgid "Deleting '%s' because of too old."
 msgstr "Lösche Datei »%s«, weil: zu alt."
 
-#: LogRotate/Handler.py:1882
+#: LogRotate/Handler.py:1888
 #, python-format
 msgid "Deleting file '%s' ..."
 msgstr "Lösche Datei »%s« ..."
 
-#: LogRotate/Handler.py:2041 LogRotate/Handler.py:2242
-#: LogRotate/Handler.py:2317 LogRotate/Handler.py:2392
+#: LogRotate/Handler.py:2047 LogRotate/Handler.py:2248
+#: LogRotate/Handler.py:2323 LogRotate/Handler.py:2398
 #, python-format
 msgid "Deleting uncompressed file '%s' ..."
 msgstr "Lösche unkomprimierte Datei »%s« ..."
 
-#: LogRotate/Handler.py:1874
+#: LogRotate/Handler.py:1880
 msgid "Deletion of all superfluid logfiles ..."
 msgstr "Löschen aller überflüssigen Logdateien ..."
 
-#: LogRotate/Config.py:1948
+#: LogRotate/Config.py:2012
 #, python-format
 msgid "Directive '%s' is not allowed outside of a logfile definition."
 msgstr "Die Direktive »%s« ist nicht außerhalb einer Logdateidefinition erlaubt."
 
-#: LogRotate/Handler.py:1673
+#: LogRotate/Handler.py:1679
 #, python-format
 msgid "Directory '%s' allready exists, not created."
 msgstr "Verzeichnis »%s« existiert bereits und wird nicht angelegt."
 
-#: LogRotate/StatusFile.py:403
+#: LogRotate/StatusFile.py:406
 #, python-format
 msgid "Directory '%s' doesn't exists."
 msgstr "Verzeichnis »%s« existiert nicht."
 
-#: LogRotate/Handler.py:1681
+#: LogRotate/Handler.py:1687
 #, python-format
 msgid "Directory '%s' exists, but is not a valid directory."
 msgstr ""
 "Das Verzeichnis »%s« existiert bereits, ist aber kein gültiges "
 "Verzeichnis."
 
-#: LogRotate/Handler.py:1650
+#: LogRotate/Handler.py:1656
 #, python-format
 msgid "Directory chain to create: '%s'."
 msgstr "Verzeichniskette zum Erstellen: »%s«."
 
-#: LogRotate/Getopts.py:280
+#: LogRotate/Getopts.py:284
 msgid "Display brief usage message and exit."
 msgstr "Zeigt einen kurzen Text zur Verwendung und beendet sich."
 
-#: LogRotate/Handler.py:886
+#: LogRotate/Handler.py:892
 #, python-format
 msgid "Do rotate logfile '%s' ..."
 msgstr "Rotiere Logdatei »%s« ..."
 
-#: LogRotate/Getopts.py:207
+#: LogRotate/Getopts.py:211
 msgid "Don't do anything, just test (implies -v and -T)"
 msgstr "Testmodus, Kommandos werden nur simuliert (beinhaltet -v und -T)"
 
-#: LogRotate/Config.py:843
+#: LogRotate/Config.py:862
 msgid "End of a logfile definition."
 msgstr "Ende einer Logdateidefinition."
 
-#: LogRotate/Handler.py:1009 LogRotate/Handler.py:2155
+#: LogRotate/Handler.py:1015 LogRotate/Handler.py:2161
 #, python-format
 msgid "Error on chmod of '%(target)s': %(err)s"
 msgstr "Fehler beim Setzen der Rechte von »%(target)s«: %(err)s"
 
-#: LogRotate/Handler.py:1030 LogRotate/Handler.py:2183
+#: LogRotate/Handler.py:1036 LogRotate/Handler.py:2189
 #, python-format
 msgid "Error on chown of '%(file)s': %(err)s"
 msgstr "Fehler beim Setzen der Besitzerschaft von »%(file)s«: %(err)s"
 
-#: LogRotate/Handler.py:1725
+#: LogRotate/Handler.py:1731
 #, python-format
 msgid "Error on chowning directory '%(dir)s': %(err)s"
 msgstr "Fehler beim Ändern der Besitzrechte von Verzeichnis »%(dir)s«: %(err)s"
 
-#: LogRotate/Handler.py:932
+#: LogRotate/Handler.py:938
 #, python-format
 msgid "Error on copying '%(from)s' => '%(to)s': %(err)s"
 msgstr "Fehler beim Kopieren von »%(from)s« => »%(to)s«: %(err)s"
 
-#: LogRotate/Handler.py:1706
+#: LogRotate/Handler.py:1712
 #, python-format
 msgid "Error on creating directory '%(dir)s': %(err)s"
 msgstr "Fehler beim Erstellen von Verzeichnis »%(dir)s«: %(err)s"
 
-#: LogRotate/Handler.py:978
+#: LogRotate/Handler.py:984
 #, python-format
 msgid "Error on creating file '%(from)s': %(err)s"
 msgstr "Fehler beim Erstellen der Datei »%(from)s«: %(err)s"
 
-#: LogRotate/Handler.py:909 LogRotate/Handler.py:963
+#: LogRotate/Handler.py:915 LogRotate/Handler.py:969
 #, python-format
 msgid "Error on moving '%(from)s' => '%(to)s': %(err)s"
 msgstr ""
 "Fehler beim Umbenennen bzw. Verschieben von »%(from)s« => »%(to)s«: "
 "%(err)s"
 
-#: LogRotate/Handler.py:2291 LogRotate/Handler.py:2366
+#: LogRotate/Handler.py:2297 LogRotate/Handler.py:2372
 #, python-format
 msgid "Error on open file '%(file)s' on reading: %(err)s"
 msgstr "Fehler beim Öffnen der Datei »%(file)s« zum Schreiben: %(err)s"
 
-#: LogRotate/Handler.py:2229 LogRotate/Handler.py:2301
-#: LogRotate/Handler.py:2376
+#: LogRotate/Handler.py:2235 LogRotate/Handler.py:2307
+#: LogRotate/Handler.py:2382
 #, python-format
 msgid "Error on open file '%(file)s' on writing: %(err)s"
 msgstr "Fehler beim Öffnen der Datei »%(file)s« zum Schreiben: %(err)s"
 
-#: LogRotate/Handler.py:1888
+#: LogRotate/Handler.py:1894
 #, python-format
 msgid "Error on removing file '%(file)s': %(err)s"
 msgstr "Fehler beim Löschen der Datei »%(file)s«: %(err)s"
 
-#: LogRotate/Handler.py:2139
+#: LogRotate/Handler.py:2145
 #, python-format
 msgid "Error on setting times on target file '%(target)s': %(err)s"
 msgstr "Fehler beim Setzen der Zeitstempel von Zielojekt »%(target)s«: %(err)s"
 
-#: LogRotate/Handler.py:944
+#: LogRotate/Handler.py:950
 #, python-format
 msgid "Error on truncing file '%(from)s': %(err)s"
 msgstr "Fehler beim Abschneiden der Datei »%(from)s«: %(err)s"
 
-#: LogRotate/Handler.py:444
+#: LogRotate/Handler.py:450
 #, python-format
 msgid "Error removing PID file '%(file)s': %(msg)"
 msgstr "Fehler beim Löschen der PID-Datei »%(file)s«: %(msg)"
 
-#: LogRotate/Handler.py:2048 LogRotate/Handler.py:2249
-#: LogRotate/Handler.py:2324 LogRotate/Handler.py:2399
+#: LogRotate/Handler.py:2054 LogRotate/Handler.py:2255
+#: LogRotate/Handler.py:2330 LogRotate/Handler.py:2405
 #, python-format
 msgid "Error removing uncompressed file '%(file)s': %(msg)"
 msgstr "Fehler beim Löschen der unkomprimierten Datei »%(file)s«: %(msg)"
 
-#: LogRotate/Handler.py:1752
+#: LogRotate/Handler.py:1758
 #, python-format
 msgid "Executing command: '%s'."
 msgstr "Führe Kommando aus: »%s«."
 
-#: LogRotate/Handler.py:782
+#: LogRotate/Handler.py:788
 #, python-format
 msgid "Executing firstaction script '%s' ..."
 msgstr "Führe Firstaction-Skript »%s« aus ..."
 
-#: LogRotate/Handler.py:849
+#: LogRotate/Handler.py:855
 #, python-format
 msgid "Executing lastaction script '%s' ..."
 msgstr "Führe Lastaction-Skript »%s« aus ..."
 
-#: LogRotate/Handler.py:828
+#: LogRotate/Handler.py:834
 #, python-format
 msgid "Executing postrun script '%s' ..."
 msgstr "Führe Postrun-Skript »%s« aus ..."
 
-#: LogRotate/Handler.py:800
+#: LogRotate/Handler.py:806
 #, python-format
 msgid "Executing prerun script '%s' ..."
 msgstr "Führe Prerun-Skript »%s« aus ..."
 
-#: LogRotate/Script.py:486
+#: LogRotate/Script.py:492
 #, python-format
 msgid "Executing script '%(name)s' with command: '%(cmd)s'"
 msgstr "Führe Skript »%(name)s« mit dem Kommando »%(cmd)s« aus."
 
-#: LogRotate/Handler.py:1770
+#: LogRotate/Handler.py:1776
 #, python-format
 msgid "Execution failed: %s"
 msgstr "Ausführung ging schief: %s"
 
-#: LogRotate/Script.py:507
+#: LogRotate/Script.py:513
 #, python-format
 msgid "Execution of script '%(name)s' failed: %(error)s"
 msgstr "Die Ausführung des Skriptes »%(name)s« ging schief: %(error)s"
 
-#: LogRotate/Config.py:1633
+#: LogRotate/Config.py:1683
 msgid "Failing size definition."
 msgstr "Fehlende Größenangabe."
 
-#: LogRotate/Config.py:682 LogRotate/Config.py:707 LogRotate/Mailer.py:492
+#: LogRotate/Config.py:694 LogRotate/Config.py:721 LogRotate/Mailer.py:496
 #, python-format
 msgid "File '%s' doesn't exists."
 msgstr "Die Datei »%s« existiert nicht."
 
-#: LogRotate/Handler.py:1943
+#: LogRotate/Handler.py:1949
 #, python-format
 msgid "File '%s' has a size of 0, skip compressing."
 msgstr "Die Datei »%s« hat die Größe Null, übergehe Komprimierung."
 
-#: LogRotate/Mailer.py:497
+#: LogRotate/Mailer.py:501
 #, python-format
 msgid "File '%s' is not a regular file."
 msgstr "Die Datei »%s« ist keine reguläre Datei."
 
-#: LogRotate/Handler.py:1106
+#: LogRotate/Handler.py:1112
 #, python-format
 msgid "File '%s' seems to be compressed, skip it."
 msgstr "Datei »%s« scheint schon komprimiert zu sein, übergehe sie."
 
-#: LogRotate/Handler.py:1112
+#: LogRotate/Handler.py:1118
 #, python-format
 msgid "File '%s' will be deleted, compression unnecessary."
 msgstr "Die Datei »%s« wird gelöscht, keine Komprimierung notwendig."
 
-#: LogRotate/Handler.py:2091 LogRotate/Handler.py:2109
+#: LogRotate/Handler.py:2097 LogRotate/Handler.py:2115
 #, python-format
 msgid "File or directory '%s' doesn't exists."
 msgstr "Die Datei oder das Verzeichnis »%s« existiert nicht."
 
-#: LogRotate/Handler.py:1849
+#: LogRotate/Handler.py:1855
 #, python-format
 msgid "Filesize %(filesize)d is less than %(maxsize)d, rotation not necessary."
 msgstr ""
 "Die Dateigröße %(filesize)d ist geringer als %(maxsize)d, eine Rotation "
 "ist deshalb nicht notwendig."
 
-#: LogRotate/Handler.py:1818
+#: LogRotate/Handler.py:1824
 #, python-format
 msgid "Filesize of '%(file)s': %(size)d."
 msgstr "Dateigröße von »%(file)s«: %(size)d."
 
-#: LogRotate/Config.py:2091
+#: LogRotate/Config.py:2156
 #, python-format
 msgid "Find all logfiles for shell matching pattern '%s' ..."
 msgstr "Finde alle Logdateien für das Shell-Suchmuster »%s« ..."
 
-#: LogRotate/Getopts.py:217
+#: LogRotate/Getopts.py:221
 msgid "Force file rotation"
 msgstr "Erzwingt Logratation"
 
-#: logrotate.py:105
+#: logrotate.py:109
 msgid "Force mode is ON."
 msgstr "Zwangsmodus ist AN."
 
-#: LogRotate/Common.py:415
+#: LogRotate/Common.py:425
 #, python-format
 msgid "Found %f days."
 msgstr "Fand %f Tage."
 
-#: LogRotate/Common.py:335
+#: LogRotate/Common.py:345
 #, python-format
 msgid "Found %f hours."
 msgstr "Fand %f Stunden."
 
-#: LogRotate/Common.py:375
+#: LogRotate/Common.py:385
 #, python-format
 msgid "Found %f months."
 msgstr "Fand %f Monate."
 
-#: LogRotate/Common.py:355
+#: LogRotate/Common.py:365
 #, python-format
 msgid "Found %f weeks."
 msgstr "Fand %f Wochen."
 
-#: LogRotate/Common.py:395
+#: LogRotate/Common.py:405
 #, python-format
 msgid "Found %f years."
 msgstr "Fand %f Jahre."
 
-#: LogRotate/Common.py:464
+#: LogRotate/Common.py:476
 msgid "Found address entries:"
 msgstr "Gefundene Adresseinträge:"
 
-#: LogRotate/Common.py:255
+#: LogRotate/Common.py:265
 #, python-format
 msgid "Found factor %d."
 msgstr "Faktor %d gefunden."
 
-#: LogRotate/Handler.py:504
+#: LogRotate/Handler.py:510
 msgid "Found global options:"
 msgstr "Gefundene globale Optionen:"
 
-#: LogRotate/Common.py:475
+#: LogRotate/Common.py:487
 #, python-format
 msgid "Found invalid mail address '%s'."
 msgstr "Ungültige Mailadresse »%s« gefunden."
 
-#: LogRotate/Config.py:2105
+#: LogRotate/Config.py:2170
 #, python-format
 msgid "Found logfile '%(file)s for pattern '%(pattern)s'."
 msgstr "Logdatei »%(file)s« zum Suchmuster »%(pattern)s« gefunden."
 
-#: LogRotate/StatusFile.py:529
+#: LogRotate/StatusFile.py:537
 #, python-format
 msgid "Found logfile '%(file)s' with rotation date '%(date)s'."
 msgstr "Logdateidefinition für »%(file)s« mit Zeitpunkt »%(date)s« gefunden."
 
-#: LogRotate/Handler.py:1128
+#: LogRotate/Handler.py:1134
 msgid "Found logfiles to compress:"
 msgstr "Gefundene Logdateien für Komprimierung:"
 
-#: LogRotate/Handler.py:1218
+#: LogRotate/Handler.py:1224
 msgid "Found logfiles to delete:"
 msgstr "Gefundene Logdateien zum Löschen:"
 
-#: LogRotate/Handler.py:1373
+#: LogRotate/Handler.py:1379
 msgid "Found old logfiles:"
 msgstr "Gefundene alte Logdateien:"
 
-#: LogRotate/Config.py:1017
+#: LogRotate/Config.py:1045
 #, python-format
 msgid "Found option '%(opt)s' with value '%(val)s'."
 msgstr "Option »%(opt)s« mit Wert »%(val)s« gefunden."
 
-#: LogRotate/Handler.py:1490
+#: LogRotate/Handler.py:1496
 msgid "Found rotations:"
 msgstr "Gefundene Rotationen:"
 
-#: LogRotate/Config.py:941
+#: LogRotate/Config.py:968
 msgid "Found start of a external script definition."
 msgstr "Beginn einer externen Scriptdefinition gefunden."
 
-#: LogRotate/Config.py:917
+#: LogRotate/Config.py:944
 #, python-format
 msgid ""
 "Found start of a regular script definition: type: '%(type)s', name: "
@@ -665,183 +665,183 @@ msgstr ""
 "Beginn einer regulären Scriptdefinition gefunden: »%(type)s«, Name: "
 "»%(name)s«."
 
-#: LogRotate/Config.py:1038
+#: LogRotate/Config.py:1066
 #, python-format
 msgid "Found value '%(value)s' behind the boolean option '%(option)s', ignoring."
 msgstr ""
 "Wert »%(value)s« nach boolscher Option »%(option)s« gefunden, wird "
 "ignoriert."
 
-#: LogRotate/Mailer.py:567
+#: LogRotate/Mailer.py:571
 msgid "Generated E-mail:"
 msgstr "Generierte E-Mail:"
 
-#: LogRotate/Common.py:294
+#: LogRotate/Common.py:304
 msgid "Given period is 'None'."
 msgstr "Die übergebene Periode ist »None«."
 
-#: LogRotate/Common.py:299
+#: LogRotate/Common.py:309
 msgid "Given period was empty."
 msgstr "Die übergebene Periode ist leer."
 
-#: LogRotate/Common.py:193
+#: LogRotate/Common.py:202
 msgid "Given value is 'None'."
 msgstr "Der übergebene Wert ist »None«."
 
-#: LogRotate/Config.py:1642
+#: LogRotate/Config.py:1694
 #, python-format
 msgid "Got a rotation size in '%(directive)s' of %(bytes)d bytes."
 msgstr "Erhaltene Rotationsgröße in »%(directive)s«: %(bytes)d Bytes."
 
-#: LogRotate/Common.py:472
+#: LogRotate/Common.py:484
 msgid "Got mail address pair:"
 msgstr "Mailadress-Paar gefunden:"
 
-#: LogRotate/Script.py:495
+#: LogRotate/Script.py:501
 #, python-format
 msgid "Got returncode for script '%(name)s': '%(retcode)s'"
 msgstr "Habe Rückggabewert »%(retcode)s« für Skript »%(name)s« erhalten."
 
-#: LogRotate/Handler.py:1760
+#: LogRotate/Handler.py:1766
 #, python-format
 msgid "Got returncode: '%s'."
 msgstr "Erhaltener Rückgabewert: »%s«."
 
-#: LogRotate/Mailer.py:535
+#: LogRotate/Mailer.py:539
 #, python-format
 msgid "Guessed content-type: '%(ctype)s' and encoding '%(encoding)s'."
 msgstr "Erratener Content-Type: »%(ctype)s«, und Encoding: »%(encoding)s«."
 
-#: logrotate.py:134
+#: logrotate.py:138
 msgid "Handler object structure"
 msgstr "Struktur des Handlerobjektes"
 
-#: LogRotate/StatusFile.py:510
+#: LogRotate/StatusFile.py:518
 #, python-format
 msgid "Idendified version of status file: %d"
 msgstr "Erkannte Version der Statusdatei: %d"
 
-#: LogRotate/Config.py:1832
+#: LogRotate/Config.py:1890
 #, python-format
 msgid "Including directory '%s' ..."
 msgstr "Binde Verzeichnis »%s« ein ..."
 
-#: LogRotate/Config.py:1840
+#: LogRotate/Config.py:1898
 #, python-format
 msgid "Including item '%(item)s' ('%(path)s') ..."
 msgstr "Binde Element »%(item)s« ein (»%(path)s«) ..."
 
-#: LogRotate/Config.py:1792
+#: LogRotate/Config.py:1850
 #, python-format
 msgid "Including object '%s' doesn't exists."
 msgstr "Das einzubindende Objekt »%s« existiert nicht."
 
-#: LogRotate/Config.py:1802
+#: LogRotate/Config.py:1860
 #, python-format
 msgid "Including object '%s' is neither a regular file  nor a directory."
 msgstr ""
 "Das einzubindende Objekt »%s« ist weder eine reguläre Datei noch ein "
 "Verzeichnis."
 
-#: LogRotate/StatusFile.py:516
+#: LogRotate/StatusFile.py:524
 #, python-format
 msgid "Incompatible version of status file '%(file)s': %(header)s"
 msgstr "Inkompatible Version der Statusdatei »%(file)s«: %(header)s"
 
-#: LogRotate/Mailer.py:429
+#: LogRotate/Mailer.py:433
 msgid "Initial search for the sendmail executable ..."
 msgstr "Initiale Suche nach dem »sendmail«-Programm ..."
 
-#: LogRotate/Config.py:1248 LogRotate/Config.py:1252
+#: LogRotate/Config.py:1281 LogRotate/Config.py:1285
 #, python-format
 msgid "Invalid SMTP port '%s' given."
 msgstr "Ungültiger SMTP-Port »%s« angegeben."
 
-#: LogRotate/Common.py:424
+#: LogRotate/Common.py:434
 #, python-format
 msgid "Invalid content for a period: '%s'."
 msgstr "Ungültiger Inhalt für eine Periode: »%s«."
 
-#: LogRotate/Config.py:1572
+#: LogRotate/Config.py:1621
 #, python-format
 msgid "Invalid create mode '%s' in 'olddir'."
 msgstr "Ungültiger »olddir«-Erstellungsmodus: »%s«."
 
-#: LogRotate/Config.py:1469
+#: LogRotate/Config.py:1516
 #, python-format
 msgid "Invalid create mode '%s'."
 msgstr "Ungültiger Erstellungsmodus »%s«."
 
-#: LogRotate/StatusFile.py:564
+#: LogRotate/StatusFile.py:574
 #, python-format
 msgid "Invalid date: '%s'."
 msgstr "Ungültiger Zeitpunkt: »%s«."
 
-#: LogRotate/Config.py:1639
+#: LogRotate/Config.py:1690
 #, python-format
 msgid "Invalid definition for 'size': '%s'."
 msgstr "Ungültige Größenangabe: »%s«."
 
-#: LogRotate/Config.py:1508 LogRotate/Config.py:1612
+#: LogRotate/Config.py:1555 LogRotate/Config.py:1661
 #, python-format
 msgid "Invalid group '%(group)s' in '%(what)s'."
 msgstr "Ungültige Gruppe »%(group)s« in »%(what)s«."
 
-#: LogRotate/Config.py:1239
+#: LogRotate/Config.py:1271
 #, python-format
 msgid "Invalid mail address for 'mailfrom' given: '%s'."
 msgstr "Ungültige Mailadresse »%s« für »mailfrom« angegeben."
 
-#: LogRotate/Mailer.py:218 LogRotate/Mailer.py:222
+#: LogRotate/Mailer.py:222 LogRotate/Mailer.py:226
 #, python-format
 msgid "Invalid mail address given: '%s'."
 msgstr "Ungültige Mailadresse übergeben: »%s«."
 
-#: LogRotate/Config.py:1324
+#: LogRotate/Config.py:1366
 #, python-format
 msgid "Invalid maxage definition: '%s'"
 msgstr "Ungültige Definition von »maxage«: »%s«"
 
-#: LogRotate/Config.py:1488 LogRotate/Config.py:1592
+#: LogRotate/Config.py:1535 LogRotate/Config.py:1641
 #, python-format
 msgid "Invalid owner '%(owner)s' in '%(what)s'."
 msgstr "Ungültiger Nutzer »%(owner)s« in »%(what)s«."
 
-#: LogRotate/Config.py:1296
+#: LogRotate/Config.py:1337
 #, python-format
 msgid "Invalid period definition: '%s'."
 msgstr "Ungültige Angabe einer Rotationsperiode: »%s«."
 
-#: LogRotate/Config.py:456
+#: LogRotate/Config.py:461
 #, python-format
 msgid "Invalid taboo pattern type '%s' given."
 msgstr "Ungültiger Tabutyp »%s« angegeben."
 
-#: LogRotate/Getopts.py:320
+#: LogRotate/Getopts.py:324
 msgid "Invalid usage of --force and --config-check."
 msgstr "Ungültige Verwendung von --force und --config-check."
 
-#: LogRotate/Script.py:230 LogRotate/Script.py:256
+#: LogRotate/Script.py:236 LogRotate/Script.py:262
 #, python-format
 msgid "Invalid value for property '%s' given."
 msgstr "Ungültiger Wert für Eigenschaft »%s« übergeben."
 
-#: LogRotate/Config.py:1864
+#: LogRotate/Config.py:1922
 #, python-format
 msgid "Item '%(item)s' is matching pattern '%(pattern)s', skiping."
 msgstr "Element »%(item)s« paßt auf Muster »%(pattern)s« und wird übergangen."
 
-#: LogRotate/Config.py:1854
+#: LogRotate/Config.py:1912
 #, python-format
 msgid "Item '%s' is not a regular file."
 msgstr "Element »%s« ist keine reguläre Datei."
 
-#: LogRotate/Config.py:884
+#: LogRotate/Config.py:910
 #, python-format
 msgid "Lastaction script '%s' not found."
 msgstr "Das Lastaction-Skript »%s« wurde nicht gefunden."
 
-#: LogRotate/Config.py:2111
+#: LogRotate/Config.py:2176
 #, python-format
 msgid ""
 "Logfile '%(logfile)s' is even defined (file '%(cfgfile)s', row "
@@ -850,114 +850,114 @@ msgstr ""
 "Die Logdatei »%(logfile)s« wurde bereits definiert (Datei »%(cfgfile)s«, "
 "Zeile %(rownum)d) und wird damit nicht noch einmal berücksichtigt."
 
-#: LogRotate/Handler.py:736
+#: LogRotate/Handler.py:742
 #, python-format
 msgid "Logfile '%s' WILL rotated."
 msgstr "Die Logdatei »%s« wird NICHT rotiert."
 
-#: LogRotate/Handler.py:1803
+#: LogRotate/Handler.py:1809
 #, python-format
 msgid "Logfile '%s' doesn't exists, not rotated."
 msgstr "Die Logdatei »%s« existiert nicht und wird demzufolge auch nicht rotiert."
 
-#: LogRotate/Handler.py:1824
+#: LogRotate/Handler.py:1830
 #, python-format
 msgid "Logfile '%s' has a filesize of Zero, not rotated."
 msgstr ""
 "Die Logdatei »%s« hate eine Dateigröße von Null und wird deshalb auch "
 "nicht rotiert."
 
-#: LogRotate/Handler.py:1812
+#: LogRotate/Handler.py:1818
 #, python-format
 msgid "Logfile '%s' is not a regular file, not rotated."
 msgstr ""
 "Die Logdatei »%s« ist keine reguläre Datei und wird deshalb auch nicht "
 "rotiert."
 
-#: LogRotate/Handler.py:738
+#: LogRotate/Handler.py:744
 #, python-format
 msgid "Logfile '%s' will NOT rotated."
 msgstr "Die Logdatei »%s« wird NICHT rotiert."
 
-#: LogRotate/Config.py:2121
+#: LogRotate/Config.py:2186
 #, python-format
 msgid "Logfile '%s' will taken."
 msgstr "Die Logdatei »%s« wird berücksichtigt."
 
-#: LogRotate/Config.py:789
+#: LogRotate/Config.py:806
 msgid "Logfile pattern definition not allowed inside a logfile definition."
 msgstr ""
 "Die Definition eines Logdateimusters ist innerhalb einer "
 "Logdateidefinition nicht erlaubt."
 
-#: LogRotate/Config.py:338
+#: LogRotate/Config.py:342
 msgid "Logrotate config reader initialised."
 msgstr "Logrotate-Konfigurationsleser initialisiert."
 
-#: LogRotate/Script.py:405
+#: LogRotate/Script.py:411
 #, python-format
 msgid "Logrotate script object '%s' will destroyed."
 msgstr "Das Logrotate-Script-Objekt »%s« wird zerstört."
 
-#: LogRotate/Handler.py:346
+#: LogRotate/Handler.py:352
 msgid "Logrotating initialised."
 msgstr "Logrotation initialisiert."
 
-#: LogRotate/Handler.py:363
+#: LogRotate/Handler.py:369
 msgid "Logrotating ready for work."
 msgstr "Logrotation ist bereit zur Arbeit."
 
-#: LogRotate/Handler.py:779
+#: LogRotate/Handler.py:785
 msgid "Looking, whether the firstaction script should be executed."
 msgstr "Schaue nach, ob das Firstaction-Skript ausgeführt werden soll."
 
-#: LogRotate/Handler.py:837
+#: LogRotate/Handler.py:843
 msgid "Looking, whether the lastaction script should be executed."
 msgstr "Schaue nach, ob das Lastaction-Skript ausgeführt werden soll."
 
-#: LogRotate/Handler.py:816
+#: LogRotate/Handler.py:822
 msgid "Looking, whether the postrun script should be executed."
 msgstr "Schaue nach, ob das Postrun-Skript ausgeführt werden soll."
 
-#: LogRotate/Handler.py:791
+#: LogRotate/Handler.py:797
 msgid "Looking, whether the prerun script should be executed."
 msgstr "Schaue nach, ob das Prerun-Skript ausgeführt werden soll."
 
-#: LogRotate/Mailer.py:355
+#: LogRotate/Mailer.py:359
 msgid "Mailer object will destroyed."
 msgstr "Das Mailer-Objekt wird zerstört."
 
-#: LogRotate/Handler.py:1183
+#: LogRotate/Handler.py:1189
 #, python-format
 msgid "Max. count rotations: %d"
 msgstr "Maximale Anzahl von Rotationen: %d"
 
-#: LogRotate/Handler.py:1175
+#: LogRotate/Handler.py:1181
 #, python-format
 msgid "Maxage: %d seconds"
 msgstr "Maximalalter: %d Sekunden"
 
-#: LogRotate/Handler.py:902 LogRotate/Handler.py:952
+#: LogRotate/Handler.py:908 LogRotate/Handler.py:958
 #, python-format
 msgid "Moving file '%(from)s' => '%(to)s'."
 msgstr "Benenne bzw. verschiebe Datei »%(from)s« => »%(to)s«."
 
-#: LogRotate/Handler.py:531
+#: LogRotate/Handler.py:537
 #, python-format
 msgid "Name of state file: '%s'"
 msgstr "Dateiname der Statusdatei: »%s«"
 
-#: LogRotate/Config.py:847
+#: LogRotate/Config.py:867
 #, python-format
 msgid "Needless content found at the end of a logfile definition found: '%s'."
 msgstr "Nutzloser Inhalt am Ende einer Logdateidefinition gefunden: »%s«."
 
-#: LogRotate/Config.py:1116
+#: LogRotate/Config.py:1144
 #, python-format
 msgid "Negative value %(value)s for option '%(option)s' is not allowed."
 msgstr "Der negative Wert %(value)s für die Option »%(option)s« ist nicht erlaubt."
 
-#: LogRotate/Handler.py:2086
+#: LogRotate/Handler.py:2092
 msgid ""
 "Neither 'target' nor 'statinfo' was given on calling "
 "_copy_file_metadata()."
@@ -965,57 +965,57 @@ msgstr ""
 "Weder »target« noch »statinfo« wurden beim Aufruf von "
 "»_copy_file_metadata()« angegeben."
 
-#: LogRotate/StatusFile.py:574
+#: LogRotate/StatusFile.py:584
 #, python-format
 msgid "Neither a logfile nor a date found in line '%s'."
 msgstr "Weder Logdatei noch Datum in Zeile »%s« gefunden."
 
-#: LogRotate/Config.py:1908
+#: LogRotate/Config.py:1966
 msgid "Nested logfile definitions are not allowed."
 msgstr "Verschachtelte Logdateidefinitionen sind nicht erlaubt."
 
-#: LogRotate/Config.py:959
+#: LogRotate/Config.py:986
 #, python-format
 msgid "New external script name: '%s'."
 msgstr "Neuer externer Scriptname: »%s«."
 
-#: LogRotate/Config.py:933
+#: LogRotate/Config.py:960
 #, python-format
 msgid "New log script name: '%s'."
 msgstr "Neuer Scriptname: »%s«."
 
-#: LogRotate/Config.py:870
+#: LogRotate/Config.py:893
 msgid "New logfile definition:"
 msgstr "Neue Logdateidefinition:"
 
-#: LogRotate/Config.py:461
+#: LogRotate/Config.py:466
 #, python-format
 msgid "New taboo pattern: '%s'."
 msgstr "Neues Tabu-Muster: »%s«."
 
-#: LogRotate/Script.py:482
+#: LogRotate/Script.py:488
 #, python-format
 msgid "No command to execute defined in script '%s'."
 msgstr "Kein Kommando zu Ausführung in Skript »%s« definiert."
 
-#: LogRotate/Handler.py:1086
+#: LogRotate/Handler.py:1092
 msgid "No compression defined."
 msgstr "Keine Komprimierung definiert."
 
-#: LogRotate/Getopts.py:324
+#: LogRotate/Getopts.py:328
 msgid "No configuration file given."
 msgstr "Keine Konfigurationsdatei angegeben."
 
-#: LogRotate/Handler.py:1571
+#: LogRotate/Handler.py:1577
 msgid "No dirname directive for olddir given."
 msgstr "Kein Verzeichnis für olddir-Direktive angegeben."
 
-#: LogRotate/Mailer.py:265 LogRotate/Mailer.py:446
+#: LogRotate/Mailer.py:269 LogRotate/Mailer.py:450
 #, python-format
 msgid "No execute permissions to '%s'."
 msgstr "Keinw Ausführungsrechte auf »%s«."
 
-#: LogRotate/Config.py:861
+#: LogRotate/Config.py:882
 #, python-format
 msgid ""
 "No extension for compressed logfiles given (File of definition: "
@@ -1024,109 +1024,109 @@ msgstr ""
 "Keine Dateierweiterung für die komprimierten Logdateien gegeben (Beginn "
 "der Definition: Datei »%(file)s«, Zeile %(rownum)d)."
 
-#: LogRotate/Config.py:1774
+#: LogRotate/Config.py:1832
 msgid "No file or directory given in a include directive."
 msgstr "Keine Datei oder Verzeichnis in »include«-Direktive angegeben."
 
-#: LogRotate/Handler.py:672
+#: LogRotate/Handler.py:678
 msgid "No logfile definitions found."
 msgstr "Keine Logdatei-Definitionen gefunden."
 
-#: LogRotate/Config.py:2097
+#: LogRotate/Config.py:2162
 #, python-format
 msgid "No logfile found for pattern '%s'."
 msgstr "Keine Logdateien zum Suchmuster »%s« gefunden."
 
-#: LogRotate/Config.py:1914
+#: LogRotate/Config.py:1972
 msgid "No logfile pattern defined on starting a logfile definition."
 msgstr "Kein Logdateimuster am Beginn einer Logdateidefinition angegeben."
 
-#: LogRotate/Config.py:2085
+#: LogRotate/Config.py:2150
 msgid "No logfile pattern defined."
 msgstr "Keine Logdatei bzw. Dateisuchmuster definiert."
 
-#: LogRotate/Handler.py:1908
+#: LogRotate/Handler.py:1914
 msgid "No logfiles to compress found."
 msgstr "Keine Logdateien zum Komprimieren gefunden."
 
-#: LogRotate/Handler.py:1878
+#: LogRotate/Handler.py:1884
 msgid "No logfiles to delete found."
 msgstr "Keine Logdateien zum Löschen gefunden."
 
-#: LogRotate/Handler.py:1170
+#: LogRotate/Handler.py:1176
 msgid "No maxage given."
 msgstr "Kein Maximalalter angegeben."
 
-#: LogRotate/Handler.py:1092 LogRotate/Handler.py:1162
+#: LogRotate/Handler.py:1098 LogRotate/Handler.py:1168
 msgid "No old logfiles available."
 msgstr "Keine alten Logdateien ermittelt."
 
-#: LogRotate/Handler.py:1131
+#: LogRotate/Handler.py:1137
 msgid "No old logfiles to compress found."
 msgstr "Keine alten Logdateien für Komprimierung gefunden."
 
-#: LogRotate/Handler.py:1221
+#: LogRotate/Handler.py:1227
 msgid "No old logfiles to delete found."
 msgstr "Keine Logdateien zum Löschen gefunden."
 
-#: LogRotate/Handler.py:608
+#: LogRotate/Handler.py:614
 #, python-format
 msgid "No permission to signal the process %d ..."
 msgstr "Kein Recht, ein Signal an Prozeß %d zu senden ..."
 
-#: LogRotate/Config.py:1716
+#: LogRotate/Config.py:1774
 msgid "No script name given in a script directive."
 msgstr "Kein Scriptname in Scriptdirektive angegeben."
 
-#: LogRotate/Handler.py:592
+#: LogRotate/Handler.py:598
 #, python-format
 msgid "No useful information found in PID file '%(file)s': '%(line)s'"
 msgstr "Keine sinnvolle Information in PID-Datei »%(file)s« gefunden: »%(line)s«"
 
-#: LogRotate/StatusFile.py:422
+#: LogRotate/StatusFile.py:426
 #, python-format
 msgid "No write access to parent directory '%(dir)s' of status file '%(file)s'."
 msgstr ""
 "Kein Schreibzugriff auf übergeordnetes Verzeichnis »%(dir)s« der "
 "Statusdatei »%(file)s«"
 
-#: LogRotate/StatusFile.py:390
+#: LogRotate/StatusFile.py:391
 #, python-format
 msgid "No write access to status file '%s'."
 msgstr "Kein Schreibzugriff auf Statusdatei »%s«."
 
-#: LogRotate/Handler.py:1633
+#: LogRotate/Handler.py:1639
 #, python-format
 msgid "No write and execute access to olddir '%s'."
 msgstr "Keine Schreib- und Ausführungsrechte auf das Olddir-Verzeichnis »%s«."
 
-#: LogRotate/Handler.py:1628
+#: LogRotate/Handler.py:1634
 #, python-format
 msgid "Olddir '%s' allready exists, not created."
 msgstr "Das Olddir-Verzeichnis »%s« existiert bereits und wird nicht angelegt."
 
-#: LogRotate/Handler.py:1640
+#: LogRotate/Handler.py:1646
 #, python-format
 msgid "Olddir '%s' exists, but is not a valid directory."
 msgstr ""
 "Das Olddir-Verzeichnis »%s« existiert bereits, ist aber kein gültiges "
 "Verzeichnis."
 
-#: LogRotate/Handler.py:1620
+#: LogRotate/Handler.py:1626
 #, python-format
 msgid "Olddir name is now '%s'."
 msgstr "Der Olddir-Name ist jetzt »%s«."
 
-#: LogRotate/Mailer.py:273
+#: LogRotate/Mailer.py:277
 #, python-format
 msgid "Only absolute path allowed for a sendmail command: '%s'."
 msgstr "Für das »sendmail«-Kommando sind nur absolute Pfadangaben erlaubt: »%s«."
 
-#: LogRotate/Getopts.py:328
+#: LogRotate/Getopts.py:332
 msgid "Only one configuration file is allowed."
 msgstr "Es ist nur die Angabe einer Konfigurationsdatei erlaubt."
 
-#: LogRotate/Config.py:1782
+#: LogRotate/Config.py:1840
 msgid ""
 "Only one declaration of a file or directory is allowed in a include "
 "directive, the first one is used."
@@ -1134,7 +1134,7 @@ msgstr ""
 "In einer »include«-Direktive darf nur eine Datei oder ein Verzeichnis "
 "angegeben werden. Die erste Angabe wird verwendet."
 
-#: LogRotate/Config.py:1724
+#: LogRotate/Config.py:1782
 msgid ""
 "Only one script name is allowed in a script directive, the first one is "
 "used."
@@ -1142,204 +1142,204 @@ msgstr ""
 "Nur ein Scriptname in einer Scriptdirektive erlaubt, der erste wird "
 "verwendet."
 
-#: LogRotate/Handler.py:1017 LogRotate/Handler.py:1713
-#: LogRotate/Handler.py:2172
+#: LogRotate/Handler.py:1023 LogRotate/Handler.py:1719
+#: LogRotate/Handler.py:2178
 msgid "Only root may execute chown()."
 msgstr "Nur root darf Besitzrechte ändern."
 
-#: LogRotate/StatusFile.py:311
+#: LogRotate/StatusFile.py:300
 #, python-format
 msgid "Open status file '%s' for writing ..."
 msgstr "Öffne Statusdatei »%s« zum Schreiben ..."
 
-#: LogRotate/Config.py:1061 LogRotate/Config.py:1068 LogRotate/Config.py:1076
-#: LogRotate/Config.py:1083
+#: LogRotate/Config.py:1089 LogRotate/Config.py:1096 LogRotate/Config.py:1104
+#: LogRotate/Config.py:1111
 #, python-format
 msgid "Option '%(by)s' disables option '%(what)'."
 msgstr "Die Option »%(by)s« setzt Option »%(what)« außer Kraft."
 
-#: LogRotate/Config.py:1110
+#: LogRotate/Config.py:1138
 #, python-format
 msgid "Option '%(option)s' has no integer value: %(msg)s."
 msgstr "Der Option »%(option)s« wurde kein Integerwert zugewiesen: %(msg)s."
 
-#: LogRotate/Config.py:1287
+#: LogRotate/Config.py:1326
 #, python-format
 msgid "Option '%(option)s' may not have a value ('%(value)s')."
 msgstr "Die Option »%(option)s« darf keinen Wert aufweisen (»%(value)s«)."
 
-#: LogRotate/Config.py:1101 LogRotate/Config.py:1197 LogRotate/Config.py:1225
+#: LogRotate/Config.py:1129 LogRotate/Config.py:1225 LogRotate/Config.py:1255
 #, python-format
 msgid "Option '%s' must have a value."
 msgstr "Die Option »%s« muss einen Wert haben."
 
-#: LogRotate/Config.py:1221
+#: LogRotate/Config.py:1249
 #, python-format
 msgid "Option '%s' not allowed inside a logfile directive."
 msgstr "Die Option »%s« ist innerhalb einer Logdateidefinition nicht erlaubt."
 
-#: LogRotate/Config.py:1428 LogRotate/Config.py:1437
+#: LogRotate/Config.py:1475 LogRotate/Config.py:1484
 #, python-format
 msgid "Option '%s' was set, so option 'create' has no effect."
 msgstr ""
 "Die Option »%s« wurde gesetzt, dadurch hat die Option »create« keinen "
 "Effekt."
 
-#: LogRotate/Config.py:1548
+#: LogRotate/Config.py:1597
 #, python-format
 msgid "Option '%s' without a value given."
 msgstr "Die Option »%s« wurde ohne einen Wert angegeben."
 
-#: LogRotate/Config.py:1200 LogRotate/Config.py:1227
+#: LogRotate/Config.py:1228 LogRotate/Config.py:1258
 #, python-format
 msgid "Option '%s' without a value."
 msgstr "Die Option »%s« hat keinen Optionswert."
 
-#: LogRotate/Config.py:1676
+#: LogRotate/Config.py:1732
 #, python-format
 msgid "Option 'taboo%s' needs a value."
 msgstr "Die Option »taboo%s« benötigt einen Wert."
 
-#: LogRotate/Config.py:1663
+#: LogRotate/Config.py:1717
 #, python-format
 msgid "Option 'taboo%s' not allowed inside a logfile directive."
 msgstr "Die Option »taboo%s« ist innerhalb einer Logfiledefinition nicht erlaubt."
 
-#: logrotate.py:78
+#: logrotate.py:82
 msgid "Options"
 msgstr "Optionen"
 
-#: LogRotate/Handler.py:564
+#: LogRotate/Handler.py:570
 #, python-format
 msgid "PID file '%s' doesn't exists."
 msgstr "PID-Datei »%s« existiert nicht."
 
-#: LogRotate/Handler.py:541
+#: LogRotate/Handler.py:547
 #, python-format
 msgid "PID file: '%s'"
 msgstr "PID-Datei: »%s«"
 
-#: LogRotate/StatusFile.py:412
+#: LogRotate/StatusFile.py:415
 #, python-format
 msgid "Parent directory '%(dir)s' of status file '%(file)s' is not a directory."
 msgstr ""
 "Das übergeordnetes Verzeichnis »%(dir)s« der Statusdatei »%(file)s« ist "
 "kein Verzeichnis."
 
-#: LogRotate/Getopts.py:246
+#: LogRotate/Getopts.py:250
 msgid "Path of PID file (different to configuration)"
 msgstr "Pfad zur PID-Datei (im Unterschied zur Konfiguration)"
 
-#: LogRotate/Getopts.py:237
+#: LogRotate/Getopts.py:241
 msgid "Path of state file (different to configuration)"
 msgstr "Pfad zur Statusdatei (im Unterschied zur Konfiguration)"
 
-#: LogRotate/Common.py:325 LogRotate/Common.py:345 LogRotate/Common.py:365
-#: LogRotate/Common.py:385 LogRotate/Common.py:405
+#: LogRotate/Common.py:335 LogRotate/Common.py:355 LogRotate/Common.py:375
+#: LogRotate/Common.py:395 LogRotate/Common.py:415
 #, python-format
 msgid "Pattern '%s'."
 msgstr "Suchmuster »%s«."
 
-#: LogRotate/Handler.py:731
+#: LogRotate/Handler.py:737
 #, python-format
 msgid "Performing logfile '%s' ..."
 msgstr "Verarbeite Logdatei »%s« ..."
 
-#: LogRotate/StatusFile.py:494
+#: LogRotate/StatusFile.py:503
 #, python-format
 msgid "Performing status file line '%s'."
 msgstr "Verarbeite Statusdatei-Zeile »%s«."
 
-#: LogRotate/StatusFile.py:430
+#: LogRotate/StatusFile.py:435
 #, python-format
 msgid "Permissions to parent directory '%s' are OK."
 msgstr "Die Rechte auf das Verzeichnis »%s« sind okay."
 
-#: LogRotate/Config.py:877
+#: LogRotate/Config.py:902
 #, python-format
 msgid "Postrotate script '%s' not found."
 msgstr "Das Postrotate-Skript »%s« wurde nicht gefunden."
 
-#: LogRotate/Handler.py:604
+#: LogRotate/Handler.py:610
 #, python-format
 msgid "Process with PID %d anonymous died."
 msgstr "Prozeß mit der PID %d ist unbekannterweise gestorben."
 
-#: LogRotate/Handler.py:616
+#: LogRotate/Handler.py:622
 #, python-format
 msgid "Process with PID %d is allready running."
 msgstr "Prozeß mit der PID %d läuft noch."
 
-#: LogRotate/Handler.py:573
+#: LogRotate/Handler.py:579
 #, python-format
 msgid "Reading PID file '%s' ..."
 msgstr "Lese PID-Datei »%s« ..."
 
-#: LogRotate/Config.py:714
+#: LogRotate/Config.py:730
 #, python-format
 msgid "Reading configuration from '%s' ..."
 msgstr "Lese Konfiguration aus »%s« ..."
 
-#: LogRotate/StatusFile.py:476
+#: LogRotate/StatusFile.py:484
 #, python-format
 msgid "Reading status file '%s' ..."
 msgstr "Lese Statusdatei »%s« ..."
 
-#: LogRotate/Handler.py:971
+#: LogRotate/Handler.py:977
 #, python-format
 msgid "Recreating file '%s'."
 msgstr "Erstelle Datei »%s«."
 
-#: LogRotate/Config.py:1816 LogRotate/Config.py:1875
+#: LogRotate/Config.py:1874 LogRotate/Config.py:1933
 #, python-format
 msgid "Recursive including of '%s'."
 msgstr "Rekursive Einbindunge von »%s«."
 
-#: LogRotate/Config.py:1420 LogRotate/Config.py:1535
+#: LogRotate/Config.py:1467 LogRotate/Config.py:1582
 #, python-format
 msgid "Removing '%s'."
 msgstr "Lösche »%s«."
 
-#: LogRotate/Handler.py:439
+#: LogRotate/Handler.py:445
 #, python-format
 msgid "Removing PID file '%s' ..."
 msgstr "Lösche PID-Datei »%s« ..."
 
-#: LogRotate/Config.py:397
+#: LogRotate/Config.py:401
 msgid "Resetting default values for directives to hard coded values."
 msgstr "Setze Vorgabewerte für Direktiven auf hardkodierte Werte zurück."
 
-#: LogRotate/Common.py:419
+#: LogRotate/Common.py:429
 #, python-format
 msgid "Rest after days: '%s'."
 msgstr "Rest nach Tagesermittlung: »%s«."
 
-#: LogRotate/Common.py:339
+#: LogRotate/Common.py:349
 #, python-format
 msgid "Rest after hours: '%s'."
 msgstr "Rest nach Stundenermittlung: »%s«."
 
-#: LogRotate/Common.py:379
+#: LogRotate/Common.py:389
 #, python-format
 msgid "Rest after months: '%s'."
 msgstr "Rest nach Monatsermittlung: »%s«."
 
-#: LogRotate/Common.py:359
+#: LogRotate/Common.py:369
 #, python-format
 msgid "Rest after weeks: '%s'."
 msgstr "Rest nach Wochenermittlung: »%s«."
 
-#: LogRotate/Common.py:399
+#: LogRotate/Common.py:409
 #, python-format
 msgid "Rest after years: '%s'."
 msgstr "Rest nach Jahresermittlung: »%s«."
 
-#: LogRotate/Handler.py:1463
+#: LogRotate/Handler.py:1469
 #, python-format
 msgid "Resulting target '%s' exists, retrieve cyclic rotation ..."
 msgstr "Resultierende Zieldatei »%s« existiert, ermittle zyklische Rotation ..."
 
-#: LogRotate/Handler.py:1416
+#: LogRotate/Handler.py:1422
 #, python-format
 msgid ""
 "Retrieving all movings and rotations for logfile '%(file)s' to target "
@@ -1348,238 +1348,238 @@ msgstr ""
 "Ermittle alle Umbenennungen und Rotationen für Logdatei »%(file)s« zu "
 "Zieldatei »%(target)s« ..."
 
-#: LogRotate/Handler.py:1251
+#: LogRotate/Handler.py:1257
 #, python-format
 msgid "Retrieving all old logfiles for file '%s' ..."
 msgstr "Ermittle alle alten Laogdateien zu Datei »%s« ..."
 
-#: LogRotate/Handler.py:1079
+#: LogRotate/Handler.py:1085
 msgid "Retrieving logfiles to compress ..."
 msgstr "Ermittle zu komprimierende Logdateien ..."
 
-#: LogRotate/Handler.py:1155
+#: LogRotate/Handler.py:1161
 msgid "Retrieving logfiles to delete ..."
 msgstr "Ermittle zu löschende Logdateien ..."
 
-#: LogRotate/Handler.py:1518
+#: LogRotate/Handler.py:1524
 #, python-format
 msgid "Retrieving the name of the rotated file of '%s' ..."
 msgstr "Ermittle den Namen der Rotierten Datei von »%s« ..."
 
-#: LogRotate/Getopts.py:114
+#: LogRotate/Getopts.py:118
 msgid "Rotates, compresses and mails system logs."
 msgstr "Rotiert, komprimiert und versended Systemlogdateien per Mail."
 
-#: LogRotate/Handler.py:1830
+#: LogRotate/Handler.py:1836
 #, python-format
 msgid "Rotating of '%s' because of force mode."
 msgstr "Rotation von »%s« wegen Zwangs-Modus."
 
-#: LogRotate/Handler.py:720
+#: LogRotate/Handler.py:726
 msgid "Rotating of logfile definition:"
 msgstr "Rotation der Logdatei-Definition:"
 
-#: LogRotate/Config.py:1733
+#: LogRotate/Config.py:1791
 #, python-format
 msgid "Script name '%s' is allready declared, it will be overwritten."
 msgstr "Der Scriptname »%s« wurde bereits deklariert und wird überschrieben."
 
-#: LogRotate/Handler.py:1361
+#: LogRotate/Handler.py:1367
 #, python-format
 msgid "Search for pattern '%s' ..."
 msgstr "Suche nach Muster »%s« ..."
 
-#: LogRotate/Config.py:565 LogRotate/Config.py:630
+#: LogRotate/Config.py:573 LogRotate/Config.py:642
 #, python-format
 msgid "Search path '%s' doesn't exists or is not a directory."
 msgstr "Der Suchpfad »%s« existiert entweder nicht oder ist kein Verzeichnis."
 
-#: LogRotate/Mailer.py:508
+#: LogRotate/Mailer.py:512
 #, python-format
 msgid "Sending mail with attached file '%(file)s' to: %(rcpt)s"
 msgstr "Verschicke Mail mit angehängter Datei »%(file)s« an: %(rcpt)s"
 
-#: LogRotate/Mailer.py:269
+#: LogRotate/Mailer.py:273
 #, python-format
 msgid "Sendmail command '%s' not found."
 msgstr "Das »sendmail«-Kommando »%s« wurde nicht gefunden."
 
-#: LogRotate/Config.py:1142 LogRotate/Config.py:1183
+#: LogRotate/Config.py:1169 LogRotate/Config.py:1211
 #, python-format
 msgid "Senseless option value '%(value)s' after '%(option)s'."
 msgstr "Sinnloser Optionswert »%(value)s« nach »%(option)s«."
 
-#: LogRotate/Mailer.py:228
+#: LogRotate/Mailer.py:232
 #, python-format
 msgid "Set sender mail address to: '%s'."
 msgstr "Setze Absender-Mailadresse auf: »%s«."
 
-#: LogRotate/Getopts.py:197
+#: LogRotate/Getopts.py:201
 msgid "Set the verbosity level"
 msgstr "Setzt das Ausführlichkeits-Niveau"
 
-#: LogRotate/Getopts.py:186
+#: LogRotate/Getopts.py:190
 msgid "Set this do simulate commands"
 msgstr "Testmodus, Kommandos werden nur simuliert"
 
-#: LogRotate/Config.py:1300 LogRotate/Config.py:1328
+#: LogRotate/Config.py:1341 LogRotate/Config.py:1370
 #, python-format
 msgid "Setting '%(what)s' in '%(directive)s' to %(to)f days."
 msgstr "Setze »%(what)s« in »%(directive)s« auf %(to)f Tage."
 
-#: LogRotate/Config.py:1380 LogRotate/Config.py:1392
+#: LogRotate/Config.py:1426 LogRotate/Config.py:1438
 #, python-format
 msgid "Setting '%(what)s' in '%(directive)s' to %(to)s."
 msgstr "Setze »%(what)s« in »%(directive)s« auf %(to)s."
 
-#: LogRotate/Handler.py:2133
+#: LogRotate/Handler.py:2139
 #, python-format
 msgid "Setting atime and mtime of target '%s'."
 msgstr "Setze Atime und Mtime von Zielobjekt »%s«."
 
-#: LogRotate/Config.py:1049
+#: LogRotate/Config.py:1077
 #, python-format
 msgid "Setting boolean option '%(option)s' in '%(directive)s' to '%(value)s'."
 msgstr "Setze boolsche Option »%(option)s« in »%(directive)s« auf »%(value)s«."
 
-#: LogRotate/Config.py:1267
+#: LogRotate/Config.py:1302
 #, python-format
 msgid "Setting global option '%(option)s' to '%(value)s'."
 msgstr "Setze globale Option »%(option)s auf »%(value)s«."
 
-#: LogRotate/Config.py:1122
+#: LogRotate/Config.py:1150
 #, python-format
 msgid "Setting integer option '%(option)s' in '%(directive)s' to '%(value)s'."
 msgstr "Setze die Integer-Option '%(option)s' in '%(directive)s' auf '%(value)s'."
 
-#: LogRotate/Config.py:1154
+#: LogRotate/Config.py:1182
 #, python-format
 msgid "Setting mail address in '%(directive)s' to '%(addr)s'."
 msgstr "Setze Mailadresse in »%(directive)s« auf »%(addr)s«."
 
-#: LogRotate/Config.py:1174
+#: LogRotate/Config.py:1202
 #, python-format
 msgid "Setting mailfirst in '%(directive)s' to '%(value)s'."
 msgstr "Setze mailfirst in »%(directive)s« auf »%(value)s«."
 
-#: LogRotate/Handler.py:1023
+#: LogRotate/Handler.py:1029
 #, python-format
 msgid "Setting ownership of '%(file)s' to uid %(uid)d and gid %(gid)d."
 msgstr "Setze Besitzerschaft von »%(file)s« auf UID %(uid)d und GID %(gid)d."
 
-#: LogRotate/Handler.py:1002 LogRotate/Handler.py:2148
+#: LogRotate/Handler.py:1008 LogRotate/Handler.py:2154
 #, python-format
 msgid "Setting permissions of '%(target)s' to %(mode)4o."
 msgstr "Setze Rechte von »%(target)s« auf %(mode)4o."
 
-#: LogRotate/StatusFile.py:271
+#: LogRotate/StatusFile.py:260
 #, python-format
 msgid "Setting rotation date of '%(file)s' to '%(date)s' ..."
 msgstr "Setze Rotationszeitpunkt von »%(file)s« auf »%(date)s« ..."
 
-#: LogRotate/Getopts.py:269
+#: LogRotate/Getopts.py:273
 msgid "Shows a help message and exit."
 msgstr "Zeigt einen Hilfetext und beendet sich."
 
-#: LogRotate/Getopts.py:289
+#: LogRotate/Getopts.py:293
 msgid "Shows the version number of the program and exit."
 msgstr "Zeigt die Versionsnummer des Programms und beendet sich."
 
-#: LogRotate/Config.py:571
+#: LogRotate/Config.py:579
 #, python-format
 msgid "Shred command found: '%s'."
 msgstr "Shred Befehl gefunden: »%s«."
 
-#: LogRotate/Config.py:576
+#: LogRotate/Config.py:584
 msgid "Shred command not found, shred disabled."
 msgstr "Shred Befehl nicht gefunden, shred wird deaktiviert."
 
-#: LogRotate/Config.py:1847
+#: LogRotate/Config.py:1905
 #, python-format
 msgid "Skip subdirectory '%s' in including."
 msgstr "Übergehe Unterverzeichnis »%s« bei Einbindung."
 
-#: LogRotate/Handler.py:1933
+#: LogRotate/Handler.py:1939
 #, python-format
 msgid "Source file '%(source)s' and target file '%(target)s' are the same file."
 msgstr "Die Quelldatei »%(source)s« und die Zieldatei »%(target)s« sind identisch."
 
-#: LogRotate/Handler.py:1926
+#: LogRotate/Handler.py:1932
 #, python-format
 msgid "Source file '%s' for compression doesn't exists."
 msgstr "Die Quelldatei »%s« für Komprimierung existiert nicht."
 
-#: LogRotate/Config.py:807
+#: LogRotate/Config.py:824
 #, python-format
 msgid "Split into parts of: '%s'"
 msgstr "Zerteile: »%s«"
 
-#: logrotate.py:113
+#: logrotate.py:117
 msgid "Stage 1: reading configuration"
 msgstr "Phase 1: Einlesen der Konfiguration"
 
-#: logrotate.py:142
+#: logrotate.py:146
 msgid "Stage 2: underlying log rotation"
 msgstr "Phase 2: Eigentliches Rotieren"
 
-#: logrotate.py:148
+#: logrotate.py:152
 msgid "Stage 3: sending logfiles per mail"
 msgstr "Phase 3: Verschicken von Logdateien per Mail"
 
-#: logrotate.py:154
+#: logrotate.py:158
 msgid "Stage 4: deleting of old logfiles"
 msgstr "Phase 4: Löschen der alten Logdateien"
 
-#: logrotate.py:160
+#: logrotate.py:164
 msgid "Stage 5: compression of old log files"
 msgstr "Phase 5: Komprimieren der alten Logdateien"
 
-#: LogRotate/Config.py:768
+#: LogRotate/Config.py:785
 msgid "Starting a logfile definition."
 msgstr "Beginn einer Logdatei-Definition."
 
-#: LogRotate/Config.py:2021
+#: LogRotate/Config.py:2085
 msgid "Starting a new log directive with default values."
 msgstr "Beginn einer neuen Logdateidefinition mit Vorgabewerten."
 
-#: LogRotate/Handler.py:676
+#: LogRotate/Handler.py:682
 msgid "Starting underlying rotation ..."
 msgstr "Starte eigentliche Rotation ..."
 
-#: LogRotate/Handler.py:691
+#: LogRotate/Handler.py:697
 #, python-format
 msgid "State of script '%s':"
 msgstr "Status des Skripts »%s«:"
 
-#: LogRotate/StatusFile.py:455
+#: LogRotate/StatusFile.py:461
 #, python-format
 msgid "Status file '%s' doesn't exists."
 msgstr "Die Statusdatei »%s« existiert nicht."
 
-#: LogRotate/StatusFile.py:472
+#: LogRotate/StatusFile.py:479
 #, python-format
 msgid "Status file '%s' is not a regular file."
 msgstr "Die Statusdatei »%s« is keine reguläre Datei."
 
-#: LogRotate/StatusFile.py:198
+#: LogRotate/StatusFile.py:186
 msgid "Status file object will destroyed."
 msgstr "Statusdatei-Objekt wird zerstört."
 
-#: LogRotate/Handler.py:2417
+#: LogRotate/Handler.py:2423
 msgid "Struct files2send:"
 msgstr "Sruktur files2send:"
 
-#: LogRotate/Handler.py:2001 LogRotate/Handler.py:2010
+#: LogRotate/Handler.py:2007 LogRotate/Handler.py:2016
 #, python-format
 msgid "Substituting '%(what)s' in compressoptions with '%(by)s'."
 msgstr "Ersetze »%(what)s« in den Komprimierungsoptionen durch »%(by)s«."
 
-#: LogRotate/Config.py:965
+#: LogRotate/Config.py:992
 #, python-format
 msgid "Syntax error in file '%(file)s', line %(line)s"
 msgstr "Syntaxfehler in Datei Datei »%(file)s«, Zeile %(line)s"
 
-#: LogRotate/Config.py:947
+#: LogRotate/Config.py:974
 msgid ""
 "Syntax error: external script definition may not appear inside of a log "
 "file definition."
@@ -1587,25 +1587,25 @@ msgstr ""
 "Syntaxfehler: eine externe Scriptdefinition darf nicht innerhalb einer "
 "Logdateidefinition auftreten."
 
-#: LogRotate/Config.py:897
+#: LogRotate/Config.py:924
 msgid "Syntax error: include may not appear inside of log file definition."
 msgstr ""
 "Syntaxfehler: Eine include-Anweisung darf nicht einer Logdateidefinition "
 "auftreten."
 
-#: LogRotate/Config.py:813
+#: LogRotate/Config.py:830
 msgid "Syntax error: open curly bracket inside alogfile pattern definition."
 msgstr ""
 "Syntaxfehler: öffnende geschweifte Klammer innerhalb einer "
 "Logdateidefinition."
 
-#: LogRotate/Config.py:838
+#: LogRotate/Config.py:855
 msgid "Syntax error: unbalanced closing curly bracket found."
 msgstr ""
 "Syntaxfehler: unausgeglichene Zahl von öffnenden und schließenden "
 "Klammern."
 
-#: LogRotate/Handler.py:2030
+#: LogRotate/Handler.py:2036
 #, python-format
 msgid ""
 "Target '%s' of compression doesn't exists after executing compression "
@@ -1614,154 +1614,154 @@ msgstr ""
 "Die Zieldatei »%s« der Komprimierung existiert nicht nach Ausführung des "
 "Komprimierungskommandos."
 
-#: LogRotate/Handler.py:1937
+#: LogRotate/Handler.py:1943
 #, python-format
 msgid "Target file '%s' for compression allready exists."
 msgstr "Die Zieldatei der Komprimierung »%s« existiert bereits."
 
-#: logrotate.py:101
+#: logrotate.py:105
 msgid "Test mode is ON."
 msgstr "Testmodus ist AN."
 
-#: LogRotate/Mailer.py:435
+#: LogRotate/Mailer.py:439
 #, python-format
 msgid "Testing for '%s' ..."
 msgstr "Teste auf »%s« ..."
 
-#: LogRotate/Handler.py:569
+#: LogRotate/Handler.py:575
 #, python-format
 msgid "Testmode, skip test of PID file '%s'."
 msgstr "Testmodus, übergehe Test der PID-Datei »%s«."
 
-#: LogRotate/Handler.py:639
+#: LogRotate/Handler.py:645
 #, python-format
 msgid "Testmode, skip writing of PID file '%s'."
 msgstr "Testmodus, übergehe Schreiben der PID-Datei »%s«."
 
-#: LogRotate/Mailer.py:205
+#: LogRotate/Mailer.py:209
 msgid "The 'From' address may not set to None."
 msgstr "Die »From«-Adresse darf nicht auf »None« gesetzt werden."
 
-#: LogRotate/Common.py:428
+#: LogRotate/Common.py:438
 #, python-format
 msgid "Total %f days found."
 msgstr "Insgesamt %f Tage gefunden."
 
-#: LogRotate/Handler.py:937
+#: LogRotate/Handler.py:943
 #, python-format
 msgid "Truncating file '%s'."
 msgstr "Schneide Datei »%s« ab."
 
-#: LogRotate/Config.py:704
+#: LogRotate/Config.py:717
 #, python-format
 msgid "Try reading configuration from '%s' ..."
 msgstr "Versuche, die Konfiguration aus »%s« zu lesen ..."
 
-#: LogRotate/Handler.py:1668
+#: LogRotate/Handler.py:1674
 #, python-format
 msgid "Try to create directory '%s' ..."
 msgstr "Versuche, Verzeichnis »%s« zu erstellen ..."
 
-#: LogRotate/Handler.py:599
+#: LogRotate/Handler.py:605
 #, python-format
 msgid "Trying check for process with PID %d ..."
 msgstr "Versuche, Prozeß mit der PID %d zu überprüfen ..."
 
-#: LogRotate/Config.py:1497
+#: LogRotate/Config.py:1544
 #, python-format
 msgid "Trying to determine create group '%s' ..."
 msgstr "Versuche, Erstellungsgruppe »%s« festzustellen ..."
 
-#: LogRotate/Config.py:1458
+#: LogRotate/Config.py:1505
 #, python-format
 msgid "Trying to determine create mode '%s' ..."
 msgstr "Versuche, Erstellungsmodus »%s« festzustellen ..."
 
-#: LogRotate/Config.py:1477
+#: LogRotate/Config.py:1524
 #, python-format
 msgid "Trying to determine create owner '%s' ..."
 msgstr "Versuche, Erstellungsnutzer »%s« festzustellen ..."
 
-#: LogRotate/Config.py:1561
+#: LogRotate/Config.py:1610
 #, python-format
 msgid "Trying to determine olddir create mode '%s' ..."
 msgstr "Versuche, »olddir«-Erstellungsmodus »%s« festzustellen ..."
 
-#: LogRotate/Config.py:1601
+#: LogRotate/Config.py:1650
 #, python-format
 msgid "Trying to determine olddir group '%s' ..."
 msgstr "Versuche, »olddir«-Erstellungsgruppe »%s« festzustellen ..."
 
-#: LogRotate/Config.py:1581
+#: LogRotate/Config.py:1630
 #, python-format
 msgid "Trying to determine olddir owner '%s' ..."
 msgstr "Versuche, »olddir«-Erstellungsnutzer »%s« festzustellen ..."
 
-#: LogRotate/Config.py:1810
+#: LogRotate/Config.py:1868
 #, python-format
 msgid "Trying to include object '%s' ..."
 msgstr "Versuche, Objekt »%s« einzubinden ..."
 
-#: LogRotate/Handler.py:612
+#: LogRotate/Handler.py:618
 #, python-format
 msgid "Unknown error: '%s'."
 msgstr "Unbekannter Fehler: »%s«."
 
-#: LogRotate/Config.py:1687
+#: LogRotate/Config.py:1744
 #, python-format
 msgid "Unknown option '%s'."
 msgstr "Unbekannte Option »%s«."
 
-#: LogRotate/Config.py:1025
+#: LogRotate/Config.py:1053
 #, python-format
 msgid "Unsupported option '%s'."
 msgstr "Nicht unterstützte Option »%s«."
 
-#: LogRotate/Handler.py:1538
+#: LogRotate/Handler.py:1544
 #, python-format
 msgid "Using '%(target)s' as target for rotation of logfile '%(logfile)s'."
 msgstr ""
 "Verwende »%(target)s« als Zieldatei der Rotation von Logdatei "
 "»%(logfile)s«."
 
-#: LogRotate/Mailer.py:260 LogRotate/Mailer.py:441
+#: LogRotate/Mailer.py:264 LogRotate/Mailer.py:445
 #, python-format
 msgid "Using '%s' as the sendmail command."
 msgstr "Verwende »%s« als »sendmail«-Kommando."
 
-#: LogRotate/Mailer.py:410
+#: LogRotate/Mailer.py:414
 #, python-format
 msgid "Using <%s> as the sender mail address."
 msgstr "Verwende <%s> als Absender-Mailadresse."
 
-#: LogRotate/Handler.py:1532
+#: LogRotate/Handler.py:1538
 #, python-format
 msgid "Using date extension '.%(ext)s' from pattern '%(pattern)s'."
 msgstr "Verwende Datumserweiterung ».%(ext)s« aus Muster »%(pattern)s«."
 
-#: LogRotate/Common.py:201 LogRotate/Common.py:319
+#: LogRotate/Common.py:210 LogRotate/Common.py:329
 #, python-format
 msgid "Using radix '%s'."
 msgstr "Verwende Radix »%s«."
 
-#: LogRotate/Config.py:1232
+#: LogRotate/Config.py:1263
 #, python-format
 msgid "Value '%(value)s' for option '%(option)s' is not an absolute path."
 msgstr ""
 "Der Wert »%(value)s« für die Option »%(option)s« ist keine absolute "
 "Pfadangabe."
 
-#: logrotate.py:103
+#: logrotate.py:107
 #, python-format
 msgid "Verbose mode is ON on level: %d"
 msgstr "Ausführlichkeitmodus is AN auf Level: %d"
 
-#: LogRotate/Config.py:1825
+#: LogRotate/Config.py:1883
 #, python-format
 msgid "What the hell is this: '%s'."
 msgstr "Was zum Teufel ist das denn: »%s«?!"
 
-#: LogRotate/Handler.py:644
+#: LogRotate/Handler.py:650
 #, python-format
 msgid "Writing PID file '%s' ..."
 msgstr "Schreibe PID-Datei »%s« ..."
@@ -1771,17 +1771,17 @@ msgstr "Schreibe PID-Datei »%s« ..."
 msgid "Writing line '%s'."
 msgstr "Schreibe Zeile »%s«."
 
-#: LogRotate/StatusFile.py:327
+#: LogRotate/StatusFile.py:318
 #, python-format
 msgid "Writing version line '%s'."
 msgstr "Schreibe Versionszeile »%s«."
 
-#: logrotate.py:167
+#: logrotate.py:171
 #, python-format
 msgid "[%(date)s]: %(prog)s ended logrotation."
 msgstr "[%(date)s]: %(prog)s hat Logrotation beendet."
 
-#: logrotate.py:94
+#: logrotate.py:98
 #, python-format
 msgid "[%(date)s]: %(prog)s is starting logrotation."
 msgstr "[%(date)s]: %(prog)s beginnt mit Logratation."
index 3777491d6d2ff059ca8caceeba5ad23f10e90b09..2aef2a97ec87fefcaea9b232eddc99faf7a3a0c7 100644 (file)
@@ -9,7 +9,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: pylogrotate 0.6.0\n"
 "Report-Msgid-Bugs-To: frank@brehm-online.com\n"
-"POT-Creation-Date: 2011-07-15 09:46+0200\n"
+"POT-Creation-Date: 2011-07-15 11:51+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -18,112 +18,112 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Generated-By: Babel 0.9.6\n"
 
-#: LogRotate/Getopts.py:120
+#: LogRotate/Getopts.py:124
 #, python-format
 msgid "%s [options] <configfile>"
 msgstr ""
 
-#: LogRotate/Config.py:491 LogRotate/Config.py:504 LogRotate/Config.py:515
+#: LogRotate/Config.py:496 LogRotate/Config.py:509 LogRotate/Config.py:523
 #, python-format
 msgid "'%s' is not a directory."
 msgstr ""
 
-#: LogRotate/Config.py:710
+#: LogRotate/Config.py:725
 #, python-format
 msgid "'%s' is not a regular file."
 msgstr ""
 
-#: LogRotate/Config.py:1366
+#: LogRotate/Config.py:1411
 #, python-format
 msgid "'dateext': first_val: '%(first_val)s', option_value: '%(value)s'."
 msgstr ""
 
-#: LogRotate/Config.py:769 LogRotate/Config.py:791 LogRotate/Config.py:815
-#: LogRotate/Config.py:839 LogRotate/Config.py:844 LogRotate/Config.py:849
-#: LogRotate/Config.py:899 LogRotate/Config.py:919 LogRotate/Config.py:942
-#: LogRotate/Config.py:949 LogRotate/Config.py:994 LogRotate/Config.py:1026
-#: LogRotate/Config.py:1041 LogRotate/Config.py:1055 LogRotate/Config.py:1063
-#: LogRotate/Config.py:1070 LogRotate/Config.py:1078 LogRotate/Config.py:1085
-#: LogRotate/Config.py:1128 LogRotate/Config.py:1160 LogRotate/Config.py:1179
-#: LogRotate/Config.py:1269 LogRotate/Config.py:1282 LogRotate/Config.py:1289
-#: LogRotate/Config.py:1305 LogRotate/Config.py:1333 LogRotate/Config.py:1351
-#: LogRotate/Config.py:1368 LogRotate/Config.py:1385 LogRotate/Config.py:1397
-#: LogRotate/Config.py:1414 LogRotate/Config.py:1421 LogRotate/Config.py:1430
-#: LogRotate/Config.py:1439 LogRotate/Config.py:1460 LogRotate/Config.py:1479
-#: LogRotate/Config.py:1499 LogRotate/Config.py:1529 LogRotate/Config.py:1536
-#: LogRotate/Config.py:1563 LogRotate/Config.py:1583 LogRotate/Config.py:1603
-#: LogRotate/Config.py:1629 LogRotate/Config.py:1644 LogRotate/Config.py:1658
-#: LogRotate/Config.py:1717 LogRotate/Config.py:1726 LogRotate/Config.py:1735
+#: LogRotate/Config.py:786 LogRotate/Config.py:808 LogRotate/Config.py:832
+#: LogRotate/Config.py:857 LogRotate/Config.py:863 LogRotate/Config.py:869
+#: LogRotate/Config.py:926 LogRotate/Config.py:946 LogRotate/Config.py:969
+#: LogRotate/Config.py:976 LogRotate/Config.py:1021 LogRotate/Config.py:1054
+#: LogRotate/Config.py:1069 LogRotate/Config.py:1083 LogRotate/Config.py:1091
+#: LogRotate/Config.py:1098 LogRotate/Config.py:1106 LogRotate/Config.py:1113
+#: LogRotate/Config.py:1156 LogRotate/Config.py:1188 LogRotate/Config.py:1207
+#: LogRotate/Config.py:1305 LogRotate/Config.py:1320 LogRotate/Config.py:1329
+#: LogRotate/Config.py:1347 LogRotate/Config.py:1376 LogRotate/Config.py:1395
+#: LogRotate/Config.py:1414 LogRotate/Config.py:1431 LogRotate/Config.py:1444
+#: LogRotate/Config.py:1461 LogRotate/Config.py:1468 LogRotate/Config.py:1477
+#: LogRotate/Config.py:1486 LogRotate/Config.py:1507 LogRotate/Config.py:1526
+#: LogRotate/Config.py:1546 LogRotate/Config.py:1576 LogRotate/Config.py:1583
+#: LogRotate/Config.py:1612 LogRotate/Config.py:1632 LogRotate/Config.py:1652
+#: LogRotate/Config.py:1679 LogRotate/Config.py:1697 LogRotate/Config.py:1712
 #: LogRotate/Config.py:1775 LogRotate/Config.py:1784 LogRotate/Config.py:1793
-#: LogRotate/Config.py:1804 LogRotate/Config.py:1817 LogRotate/Config.py:1826
-#: LogRotate/Config.py:1876 LogRotate/Config.py:1909 LogRotate/Config.py:1916
-#: LogRotate/Config.py:1950 LogRotate/StatusFile.py:496
-#: LogRotate/StatusFile.py:539 LogRotate/StatusFile.py:565
-#: LogRotate/StatusFile.py:576
+#: LogRotate/Config.py:1833 LogRotate/Config.py:1842 LogRotate/Config.py:1851
+#: LogRotate/Config.py:1862 LogRotate/Config.py:1875 LogRotate/Config.py:1884
+#: LogRotate/Config.py:1934 LogRotate/Config.py:1967 LogRotate/Config.py:1974
+#: LogRotate/Config.py:2014 LogRotate/StatusFile.py:504
+#: LogRotate/StatusFile.py:549 LogRotate/StatusFile.py:575
+#: LogRotate/StatusFile.py:586
 #, python-format
 msgid "(file '%(file)s', line %(lnr)s)"
 msgstr ""
 
-#: LogRotate/StatusFile.py:467
+#: LogRotate/StatusFile.py:473
 #, python-format
 msgid "Absolute path of status file is now '%s'."
 msgstr ""
 
-#: LogRotate/StatusFile.py:386
+#: LogRotate/StatusFile.py:387
 #, python-format
 msgid "Access to status file '%s' is OK."
 msgstr ""
 
-#: logrotate.py:79
+#: logrotate.py:83
 msgid "Arguments"
 msgstr ""
 
-#: LogRotate/Common.py:303
+#: LogRotate/Common.py:313
 #, python-format
 msgid "Called with '%s'."
 msgstr ""
 
-#: LogRotate/Handler.py:1799
+#: LogRotate/Handler.py:1805
 #, python-format
 msgid "Check, whether logfile '%s' should rotated."
 msgstr ""
 
-#: LogRotate/Handler.py:1191
+#: LogRotate/Handler.py:1197
 #, python-format
 msgid "Checking file '%s' for deleting ..."
 msgstr ""
 
-#: LogRotate/Config.py:1413 LogRotate/Config.py:1528
+#: LogRotate/Config.py:1460 LogRotate/Config.py:1575
 #, python-format
 msgid "Checking for option '%s' ..."
 msgstr ""
 
-#: LogRotate/Config.py:1350
+#: LogRotate/Config.py:1393
 #, python-format
 msgid "Checking for option 'dateext', negated: '%s'."
 msgstr ""
 
-#: LogRotate/Config.py:1280
+#: LogRotate/Config.py:1317
 #, python-format
 msgid "Checking for option 'period': key '%(key)s', value '%(value)s'."
 msgstr ""
 
-#: LogRotate/Config.py:1628
+#: LogRotate/Config.py:1677
 #, python-format
 msgid "Checking for option 'size', value '%s' ..."
 msgstr ""
 
-#: LogRotate/Config.py:1656
+#: LogRotate/Config.py:1709
 #, python-format
 msgid "Checking for option 'taboo%(type)s', value: '%(value)s' ..."
 msgstr ""
 
-#: LogRotate/Config.py:993
+#: LogRotate/Config.py:1020
 #, python-format
 msgid "Checking line '%s' for a logrotate option."
 msgstr ""
 
-#: LogRotate/StatusFile.py:398
+#: LogRotate/StatusFile.py:400
 #, python-format
 msgid "Checking permissions of parent directory '%s' ..."
 msgstr ""
@@ -133,1568 +133,1568 @@ msgstr ""
 msgid "Checking permissions of status file '%s' ..."
 msgstr ""
 
-#: LogRotate/Script.py:531
+#: LogRotate/Script.py:537
 #, python-format
 msgid "Checking, whether the script '%s' should be executed."
 msgstr ""
 
-#: LogRotate/Getopts.py:227
+#: LogRotate/Getopts.py:231
 msgid ""
 "Checks only the given configuration file and does nothing. Conflicts with"
 " -f."
 msgstr ""
 
-#: LogRotate/Script.py:499
+#: LogRotate/Script.py:505
 #, python-format
 msgid "Child in script '%(name)s' was terminated by signal %(retcode)d."
 msgstr ""
 
-#: LogRotate/Handler.py:1763
+#: LogRotate/Handler.py:1769
 #, python-format
 msgid "Child was terminated by signal %d."
 msgstr ""
 
-#: LogRotate/Getopts.py:255
+#: LogRotate/Getopts.py:259
 msgid ""
 "Command to send mail (instead of using SMTP or the predefined sendmail "
 "command)."
 msgstr ""
 
-#: LogRotate/Getopts.py:267
+#: LogRotate/Getopts.py:271
 msgid "Common options"
 msgstr ""
 
-#: LogRotate/Config.py:1206
+#: LogRotate/Config.py:1234
 #, python-format
 msgid "Compress command '%s' not found."
 msgstr ""
 
-#: LogRotate/Handler.py:2018
+#: LogRotate/Handler.py:2024
 #, python-format
 msgid "Compress options: '%s'."
 msgstr ""
 
-#: LogRotate/Handler.py:1948
+#: LogRotate/Handler.py:1954
 #, python-format
 msgid "Compressing file '%(file)s' to '%(target)s' with '%(cmd)s' ..."
 msgstr ""
 
-#: LogRotate/Handler.py:2210 LogRotate/Handler.py:2277
-#: LogRotate/Handler.py:2352
+#: LogRotate/Handler.py:2216 LogRotate/Handler.py:2283
+#: LogRotate/Handler.py:2358
 #, python-format
 msgid ""
 "Compressing source '%(source)s' to target '%(target)s' with module "
 "'%(module)s'."
 msgstr ""
 
-#: LogRotate/Handler.py:1990
+#: LogRotate/Handler.py:1996
 #, python-format
 msgid ""
 "Compressing source '%(source)s' to target'%(target)s' with command "
 "'%(cmd)s'."
 msgstr ""
 
-#: LogRotate/Handler.py:1904
+#: LogRotate/Handler.py:1910
 msgid "Compression of all uncompressed logfiles ..."
 msgstr ""
 
-#: LogRotate/Handler.py:1118
+#: LogRotate/Handler.py:1124
 #, python-format
 msgid "Compression of file '%s' will be delayed."
 msgstr ""
 
-#: logrotate.py:107
+#: logrotate.py:111
 msgid "Configuration check only."
 msgstr ""
 
-#: LogRotate/Handler.py:491
+#: LogRotate/Handler.py:497
 msgid "Configuration reader object structure"
 msgstr ""
 
-#: LogRotate/Handler.py:2101
+#: LogRotate/Handler.py:2107
 #, python-format
 msgid "Copying all file metadata to target '%s' ..."
 msgstr ""
 
-#: LogRotate/Handler.py:925
+#: LogRotate/Handler.py:931
 #, python-format
 msgid "Copying file '%(from)s' => '%(to)s'."
 msgstr ""
 
-#: LogRotate/Handler.py:2168
+#: LogRotate/Handler.py:2174
 msgid "Copying ownership from source to target."
 msgstr ""
 
-#: LogRotate/Handler.py:2117
+#: LogRotate/Handler.py:2123
 #, python-format
 msgid ""
 "Copying permissions and timestamps from source '%(src)s' to target "
 "'%(target)s'."
 msgstr ""
 
-#: LogRotate/Config.py:1012
+#: LogRotate/Config.py:1040
 #, python-format
 msgid "Could not detect option in line '%s'."
 msgstr ""
 
-#: LogRotate/Common.py:212
+#: LogRotate/Common.py:221
 #, python-format
 msgid "Could not determine bytes in '%s'."
 msgstr ""
 
-#: LogRotate/StatusFile.py:537
+#: LogRotate/StatusFile.py:547
 #, python-format
 msgid "Could not determine date format: '%s'."
 msgstr ""
 
-#: LogRotate/StatusFile.py:319
+#: LogRotate/StatusFile.py:309
 #, python-format
 msgid "Could not open status file '%s' for write: "
 msgstr ""
 
-#: LogRotate/Config.py:720
+#: LogRotate/Config.py:737
 #, python-format
 msgid "Could not read configuration file '%s'"
 msgstr ""
 
-#: LogRotate/Handler.py:350
+#: LogRotate/Handler.py:356
 msgid "Could not read configuration."
 msgstr ""
 
-#: LogRotate/StatusFile.py:483
+#: LogRotate/StatusFile.py:491
 #, python-format
 msgid "Could not read status file '%s': "
 msgstr ""
 
-#: LogRotate/Common.py:251
+#: LogRotate/Common.py:261
 #, python-format
 msgid "Couldn't detect prefix '%s'."
 msgstr ""
 
-#: LogRotate/Handler.py:579
+#: LogRotate/Handler.py:585
 #, python-format
 msgid "Couldn't open PID file '%(file)s' for reading: %(msg)s"
 msgstr ""
 
-#: LogRotate/Handler.py:653
+#: LogRotate/Handler.py:659
 #, python-format
 msgid "Couldn't open PID file '%(file)s' for writing: %(msg)s"
 msgstr ""
 
-#: LogRotate/Handler.py:1696
+#: LogRotate/Handler.py:1702
 #, python-format
 msgid "Create permissions: %(mode)4o, Owner-UID: %(uid)d, Group-GID: %(gid)d"
 msgstr ""
 
-#: LogRotate/Handler.py:1684
+#: LogRotate/Handler.py:1690
 #, python-format
 msgid "Creating directory '%s' ..."
 msgstr ""
 
-#: LogRotate/Handler.py:1654
+#: LogRotate/Handler.py:1660
 #, python-format
 msgid "Creating olddir '%s' recursive ..."
 msgstr ""
 
-#: LogRotate/Handler.py:1194
+#: LogRotate/Handler.py:1200
 #, python-format
 msgid "Current count: %(count)d, current age: %(age)d seconds"
 msgstr ""
 
-#: LogRotate/Handler.py:1473
+#: LogRotate/Handler.py:1479
 #, python-format
 msgid "Cyclic rotation from '%(from)s' to '%(to)s'."
 msgstr ""
 
-#: LogRotate/Handler.py:1840
+#: LogRotate/Handler.py:1846
 #, python-format
 msgid "Date of last rotation: %s."
 msgstr ""
 
-#: LogRotate/Handler.py:1857
+#: LogRotate/Handler.py:1863
 #, python-format
 msgid "Date of next rotation '%(next)s' is in future, rotation not necessary."
 msgstr ""
 
-#: LogRotate/Handler.py:1844
+#: LogRotate/Handler.py:1850
 #, python-format
 msgid "Date of next rotation: %s."
 msgstr ""
 
-#: LogRotate/Handler.py:1202
+#: LogRotate/Handler.py:1208
 #, python-format
 msgid "Deleting '%s' because of too much."
 msgstr ""
 
-#: LogRotate/Handler.py:1211
+#: LogRotate/Handler.py:1217
 #, python-format
 msgid "Deleting '%s' because of too old."
 msgstr ""
 
-#: LogRotate/Handler.py:1882
+#: LogRotate/Handler.py:1888
 #, python-format
 msgid "Deleting file '%s' ..."
 msgstr ""
 
-#: LogRotate/Handler.py:2041 LogRotate/Handler.py:2242
-#: LogRotate/Handler.py:2317 LogRotate/Handler.py:2392
+#: LogRotate/Handler.py:2047 LogRotate/Handler.py:2248
+#: LogRotate/Handler.py:2323 LogRotate/Handler.py:2398
 #, python-format
 msgid "Deleting uncompressed file '%s' ..."
 msgstr ""
 
-#: LogRotate/Handler.py:1874
+#: LogRotate/Handler.py:1880
 msgid "Deletion of all superfluid logfiles ..."
 msgstr ""
 
-#: LogRotate/Config.py:1948
+#: LogRotate/Config.py:2012
 #, python-format
 msgid "Directive '%s' is not allowed outside of a logfile definition."
 msgstr ""
 
-#: LogRotate/Handler.py:1673
+#: LogRotate/Handler.py:1679
 #, python-format
 msgid "Directory '%s' allready exists, not created."
 msgstr ""
 
-#: LogRotate/StatusFile.py:403
+#: LogRotate/StatusFile.py:406
 #, python-format
 msgid "Directory '%s' doesn't exists."
 msgstr ""
 
-#: LogRotate/Handler.py:1681
+#: LogRotate/Handler.py:1687
 #, python-format
 msgid "Directory '%s' exists, but is not a valid directory."
 msgstr ""
 
-#: LogRotate/Handler.py:1650
+#: LogRotate/Handler.py:1656
 #, python-format
 msgid "Directory chain to create: '%s'."
 msgstr ""
 
-#: LogRotate/Getopts.py:280
+#: LogRotate/Getopts.py:284
 msgid "Display brief usage message and exit."
 msgstr ""
 
-#: LogRotate/Handler.py:886
+#: LogRotate/Handler.py:892
 #, python-format
 msgid "Do rotate logfile '%s' ..."
 msgstr ""
 
-#: LogRotate/Getopts.py:207
+#: LogRotate/Getopts.py:211
 msgid "Don't do anything, just test (implies -v and -T)"
 msgstr ""
 
-#: LogRotate/Config.py:843
+#: LogRotate/Config.py:862
 msgid "End of a logfile definition."
 msgstr ""
 
-#: LogRotate/Handler.py:1009 LogRotate/Handler.py:2155
+#: LogRotate/Handler.py:1015 LogRotate/Handler.py:2161
 #, python-format
 msgid "Error on chmod of '%(target)s': %(err)s"
 msgstr ""
 
-#: LogRotate/Handler.py:1030 LogRotate/Handler.py:2183
+#: LogRotate/Handler.py:1036 LogRotate/Handler.py:2189
 #, python-format
 msgid "Error on chown of '%(file)s': %(err)s"
 msgstr ""
 
-#: LogRotate/Handler.py:1725
+#: LogRotate/Handler.py:1731
 #, python-format
 msgid "Error on chowning directory '%(dir)s': %(err)s"
 msgstr ""
 
-#: LogRotate/Handler.py:932
+#: LogRotate/Handler.py:938
 #, python-format
 msgid "Error on copying '%(from)s' => '%(to)s': %(err)s"
 msgstr ""
 
-#: LogRotate/Handler.py:1706
+#: LogRotate/Handler.py:1712
 #, python-format
 msgid "Error on creating directory '%(dir)s': %(err)s"
 msgstr ""
 
-#: LogRotate/Handler.py:978
+#: LogRotate/Handler.py:984
 #, python-format
 msgid "Error on creating file '%(from)s': %(err)s"
 msgstr ""
 
-#: LogRotate/Handler.py:909 LogRotate/Handler.py:963
+#: LogRotate/Handler.py:915 LogRotate/Handler.py:969
 #, python-format
 msgid "Error on moving '%(from)s' => '%(to)s': %(err)s"
 msgstr ""
 
-#: LogRotate/Handler.py:2291 LogRotate/Handler.py:2366
+#: LogRotate/Handler.py:2297 LogRotate/Handler.py:2372
 #, python-format
 msgid "Error on open file '%(file)s' on reading: %(err)s"
 msgstr ""
 
-#: LogRotate/Handler.py:2229 LogRotate/Handler.py:2301
-#: LogRotate/Handler.py:2376
+#: LogRotate/Handler.py:2235 LogRotate/Handler.py:2307
+#: LogRotate/Handler.py:2382
 #, python-format
 msgid "Error on open file '%(file)s' on writing: %(err)s"
 msgstr ""
 
-#: LogRotate/Handler.py:1888
+#: LogRotate/Handler.py:1894
 #, python-format
 msgid "Error on removing file '%(file)s': %(err)s"
 msgstr ""
 
-#: LogRotate/Handler.py:2139
+#: LogRotate/Handler.py:2145
 #, python-format
 msgid "Error on setting times on target file '%(target)s': %(err)s"
 msgstr ""
 
-#: LogRotate/Handler.py:944
+#: LogRotate/Handler.py:950
 #, python-format
 msgid "Error on truncing file '%(from)s': %(err)s"
 msgstr ""
 
-#: LogRotate/Handler.py:444
+#: LogRotate/Handler.py:450
 #, python-format
 msgid "Error removing PID file '%(file)s': %(msg)"
 msgstr ""
 
-#: LogRotate/Handler.py:2048 LogRotate/Handler.py:2249
-#: LogRotate/Handler.py:2324 LogRotate/Handler.py:2399
+#: LogRotate/Handler.py:2054 LogRotate/Handler.py:2255
+#: LogRotate/Handler.py:2330 LogRotate/Handler.py:2405
 #, python-format
 msgid "Error removing uncompressed file '%(file)s': %(msg)"
 msgstr ""
 
-#: LogRotate/Handler.py:1752
+#: LogRotate/Handler.py:1758
 #, python-format
 msgid "Executing command: '%s'."
 msgstr ""
 
-#: LogRotate/Handler.py:782
+#: LogRotate/Handler.py:788
 #, python-format
 msgid "Executing firstaction script '%s' ..."
 msgstr ""
 
-#: LogRotate/Handler.py:849
+#: LogRotate/Handler.py:855
 #, python-format
 msgid "Executing lastaction script '%s' ..."
 msgstr ""
 
-#: LogRotate/Handler.py:828
+#: LogRotate/Handler.py:834
 #, python-format
 msgid "Executing postrun script '%s' ..."
 msgstr ""
 
-#: LogRotate/Handler.py:800
+#: LogRotate/Handler.py:806
 #, python-format
 msgid "Executing prerun script '%s' ..."
 msgstr ""
 
-#: LogRotate/Script.py:486
+#: LogRotate/Script.py:492
 #, python-format
 msgid "Executing script '%(name)s' with command: '%(cmd)s'"
 msgstr ""
 
-#: LogRotate/Handler.py:1770
+#: LogRotate/Handler.py:1776
 #, python-format
 msgid "Execution failed: %s"
 msgstr ""
 
-#: LogRotate/Script.py:507
+#: LogRotate/Script.py:513
 #, python-format
 msgid "Execution of script '%(name)s' failed: %(error)s"
 msgstr ""
 
-#: LogRotate/Config.py:1633
+#: LogRotate/Config.py:1683
 msgid "Failing size definition."
 msgstr ""
 
-#: LogRotate/Config.py:682 LogRotate/Config.py:707 LogRotate/Mailer.py:492
+#: LogRotate/Config.py:694 LogRotate/Config.py:721 LogRotate/Mailer.py:496
 #, python-format
 msgid "File '%s' doesn't exists."
 msgstr ""
 
-#: LogRotate/Handler.py:1943
+#: LogRotate/Handler.py:1949
 #, python-format
 msgid "File '%s' has a size of 0, skip compressing."
 msgstr ""
 
-#: LogRotate/Mailer.py:497
+#: LogRotate/Mailer.py:501
 #, python-format
 msgid "File '%s' is not a regular file."
 msgstr ""
 
-#: LogRotate/Handler.py:1106
+#: LogRotate/Handler.py:1112
 #, python-format
 msgid "File '%s' seems to be compressed, skip it."
 msgstr ""
 
-#: LogRotate/Handler.py:1112
+#: LogRotate/Handler.py:1118
 #, python-format
 msgid "File '%s' will be deleted, compression unnecessary."
 msgstr ""
 
-#: LogRotate/Handler.py:2091 LogRotate/Handler.py:2109
+#: LogRotate/Handler.py:2097 LogRotate/Handler.py:2115
 #, python-format
 msgid "File or directory '%s' doesn't exists."
 msgstr ""
 
-#: LogRotate/Handler.py:1849
+#: LogRotate/Handler.py:1855
 #, python-format
 msgid "Filesize %(filesize)d is less than %(maxsize)d, rotation not necessary."
 msgstr ""
 
-#: LogRotate/Handler.py:1818
+#: LogRotate/Handler.py:1824
 #, python-format
 msgid "Filesize of '%(file)s': %(size)d."
 msgstr ""
 
-#: LogRotate/Config.py:2091
+#: LogRotate/Config.py:2156
 #, python-format
 msgid "Find all logfiles for shell matching pattern '%s' ..."
 msgstr ""
 
-#: LogRotate/Getopts.py:217
+#: LogRotate/Getopts.py:221
 msgid "Force file rotation"
 msgstr ""
 
-#: logrotate.py:105
+#: logrotate.py:109
 msgid "Force mode is ON."
 msgstr ""
 
-#: LogRotate/Common.py:415
+#: LogRotate/Common.py:425
 #, python-format
 msgid "Found %f days."
 msgstr ""
 
-#: LogRotate/Common.py:335
+#: LogRotate/Common.py:345
 #, python-format
 msgid "Found %f hours."
 msgstr ""
 
-#: LogRotate/Common.py:375
+#: LogRotate/Common.py:385
 #, python-format
 msgid "Found %f months."
 msgstr ""
 
-#: LogRotate/Common.py:355
+#: LogRotate/Common.py:365
 #, python-format
 msgid "Found %f weeks."
 msgstr ""
 
-#: LogRotate/Common.py:395
+#: LogRotate/Common.py:405
 #, python-format
 msgid "Found %f years."
 msgstr ""
 
-#: LogRotate/Common.py:464
+#: LogRotate/Common.py:476
 msgid "Found address entries:"
 msgstr ""
 
-#: LogRotate/Common.py:255
+#: LogRotate/Common.py:265
 #, python-format
 msgid "Found factor %d."
 msgstr ""
 
-#: LogRotate/Handler.py:504
+#: LogRotate/Handler.py:510
 msgid "Found global options:"
 msgstr ""
 
-#: LogRotate/Common.py:475
+#: LogRotate/Common.py:487
 #, python-format
 msgid "Found invalid mail address '%s'."
 msgstr ""
 
-#: LogRotate/Config.py:2105
+#: LogRotate/Config.py:2170
 #, python-format
 msgid "Found logfile '%(file)s for pattern '%(pattern)s'."
 msgstr ""
 
-#: LogRotate/StatusFile.py:529
+#: LogRotate/StatusFile.py:537
 #, python-format
 msgid "Found logfile '%(file)s' with rotation date '%(date)s'."
 msgstr ""
 
-#: LogRotate/Handler.py:1128
+#: LogRotate/Handler.py:1134
 msgid "Found logfiles to compress:"
 msgstr ""
 
-#: LogRotate/Handler.py:1218
+#: LogRotate/Handler.py:1224
 msgid "Found logfiles to delete:"
 msgstr ""
 
-#: LogRotate/Handler.py:1373
+#: LogRotate/Handler.py:1379
 msgid "Found old logfiles:"
 msgstr ""
 
-#: LogRotate/Config.py:1017
+#: LogRotate/Config.py:1045
 #, python-format
 msgid "Found option '%(opt)s' with value '%(val)s'."
 msgstr ""
 
-#: LogRotate/Handler.py:1490
+#: LogRotate/Handler.py:1496
 msgid "Found rotations:"
 msgstr ""
 
-#: LogRotate/Config.py:941
+#: LogRotate/Config.py:968
 msgid "Found start of a external script definition."
 msgstr ""
 
-#: LogRotate/Config.py:917
+#: LogRotate/Config.py:944
 #, python-format
 msgid ""
 "Found start of a regular script definition: type: '%(type)s', name: "
 "'%(name)s'."
 msgstr ""
 
-#: LogRotate/Config.py:1038
+#: LogRotate/Config.py:1066
 #, python-format
 msgid "Found value '%(value)s' behind the boolean option '%(option)s', ignoring."
 msgstr ""
 
-#: LogRotate/Mailer.py:567
+#: LogRotate/Mailer.py:571
 msgid "Generated E-mail:"
 msgstr ""
 
-#: LogRotate/Common.py:294
+#: LogRotate/Common.py:304
 msgid "Given period is 'None'."
 msgstr ""
 
-#: LogRotate/Common.py:299
+#: LogRotate/Common.py:309
 msgid "Given period was empty."
 msgstr ""
 
-#: LogRotate/Common.py:193
+#: LogRotate/Common.py:202
 msgid "Given value is 'None'."
 msgstr ""
 
-#: LogRotate/Config.py:1642
+#: LogRotate/Config.py:1694
 #, python-format
 msgid "Got a rotation size in '%(directive)s' of %(bytes)d bytes."
 msgstr ""
 
-#: LogRotate/Common.py:472
+#: LogRotate/Common.py:484
 msgid "Got mail address pair:"
 msgstr ""
 
-#: LogRotate/Script.py:495
+#: LogRotate/Script.py:501
 #, python-format
 msgid "Got returncode for script '%(name)s': '%(retcode)s'"
 msgstr ""
 
-#: LogRotate/Handler.py:1760
+#: LogRotate/Handler.py:1766
 #, python-format
 msgid "Got returncode: '%s'."
 msgstr ""
 
-#: LogRotate/Mailer.py:535
+#: LogRotate/Mailer.py:539
 #, python-format
 msgid "Guessed content-type: '%(ctype)s' and encoding '%(encoding)s'."
 msgstr ""
 
-#: logrotate.py:134
+#: logrotate.py:138
 msgid "Handler object structure"
 msgstr ""
 
-#: LogRotate/StatusFile.py:510
+#: LogRotate/StatusFile.py:518
 #, python-format
 msgid "Idendified version of status file: %d"
 msgstr ""
 
-#: LogRotate/Config.py:1832
+#: LogRotate/Config.py:1890
 #, python-format
 msgid "Including directory '%s' ..."
 msgstr ""
 
-#: LogRotate/Config.py:1840
+#: LogRotate/Config.py:1898
 #, python-format
 msgid "Including item '%(item)s' ('%(path)s') ..."
 msgstr ""
 
-#: LogRotate/Config.py:1792
+#: LogRotate/Config.py:1850
 #, python-format
 msgid "Including object '%s' doesn't exists."
 msgstr ""
 
-#: LogRotate/Config.py:1802
+#: LogRotate/Config.py:1860
 #, python-format
 msgid "Including object '%s' is neither a regular file  nor a directory."
 msgstr ""
 
-#: LogRotate/StatusFile.py:516
+#: LogRotate/StatusFile.py:524
 #, python-format
 msgid "Incompatible version of status file '%(file)s': %(header)s"
 msgstr ""
 
-#: LogRotate/Mailer.py:429
+#: LogRotate/Mailer.py:433
 msgid "Initial search for the sendmail executable ..."
 msgstr ""
 
-#: LogRotate/Config.py:1248 LogRotate/Config.py:1252
+#: LogRotate/Config.py:1281 LogRotate/Config.py:1285
 #, python-format
 msgid "Invalid SMTP port '%s' given."
 msgstr ""
 
-#: LogRotate/Common.py:424
+#: LogRotate/Common.py:434
 #, python-format
 msgid "Invalid content for a period: '%s'."
 msgstr ""
 
-#: LogRotate/Config.py:1572
+#: LogRotate/Config.py:1621
 #, python-format
 msgid "Invalid create mode '%s' in 'olddir'."
 msgstr ""
 
-#: LogRotate/Config.py:1469
+#: LogRotate/Config.py:1516
 #, python-format
 msgid "Invalid create mode '%s'."
 msgstr ""
 
-#: LogRotate/StatusFile.py:564
+#: LogRotate/StatusFile.py:574
 #, python-format
 msgid "Invalid date: '%s'."
 msgstr ""
 
-#: LogRotate/Config.py:1639
+#: LogRotate/Config.py:1690
 #, python-format
 msgid "Invalid definition for 'size': '%s'."
 msgstr ""
 
-#: LogRotate/Config.py:1508 LogRotate/Config.py:1612
+#: LogRotate/Config.py:1555 LogRotate/Config.py:1661
 #, python-format
 msgid "Invalid group '%(group)s' in '%(what)s'."
 msgstr ""
 
-#: LogRotate/Config.py:1239
+#: LogRotate/Config.py:1271
 #, python-format
 msgid "Invalid mail address for 'mailfrom' given: '%s'."
 msgstr ""
 
-#: LogRotate/Mailer.py:218 LogRotate/Mailer.py:222
+#: LogRotate/Mailer.py:222 LogRotate/Mailer.py:226
 #, python-format
 msgid "Invalid mail address given: '%s'."
 msgstr ""
 
-#: LogRotate/Config.py:1324
+#: LogRotate/Config.py:1366
 #, python-format
 msgid "Invalid maxage definition: '%s'"
 msgstr ""
 
-#: LogRotate/Config.py:1488 LogRotate/Config.py:1592
+#: LogRotate/Config.py:1535 LogRotate/Config.py:1641
 #, python-format
 msgid "Invalid owner '%(owner)s' in '%(what)s'."
 msgstr ""
 
-#: LogRotate/Config.py:1296
+#: LogRotate/Config.py:1337
 #, python-format
 msgid "Invalid period definition: '%s'."
 msgstr ""
 
-#: LogRotate/Config.py:456
+#: LogRotate/Config.py:461
 #, python-format
 msgid "Invalid taboo pattern type '%s' given."
 msgstr ""
 
-#: LogRotate/Getopts.py:320
+#: LogRotate/Getopts.py:324
 msgid "Invalid usage of --force and --config-check."
 msgstr ""
 
-#: LogRotate/Script.py:230 LogRotate/Script.py:256
+#: LogRotate/Script.py:236 LogRotate/Script.py:262
 #, python-format
 msgid "Invalid value for property '%s' given."
 msgstr ""
 
-#: LogRotate/Config.py:1864
+#: LogRotate/Config.py:1922
 #, python-format
 msgid "Item '%(item)s' is matching pattern '%(pattern)s', skiping."
 msgstr ""
 
-#: LogRotate/Config.py:1854
+#: LogRotate/Config.py:1912
 #, python-format
 msgid "Item '%s' is not a regular file."
 msgstr ""
 
-#: LogRotate/Config.py:884
+#: LogRotate/Config.py:910
 #, python-format
 msgid "Lastaction script '%s' not found."
 msgstr ""
 
-#: LogRotate/Config.py:2111
+#: LogRotate/Config.py:2176
 #, python-format
 msgid ""
 "Logfile '%(logfile)s' is even defined (file '%(cfgfile)s', row "
 "%(rownum)d) and so not taken a second time."
 msgstr ""
 
-#: LogRotate/Handler.py:736
+#: LogRotate/Handler.py:742
 #, python-format
 msgid "Logfile '%s' WILL rotated."
 msgstr ""
 
-#: LogRotate/Handler.py:1803
+#: LogRotate/Handler.py:1809
 #, python-format
 msgid "Logfile '%s' doesn't exists, not rotated."
 msgstr ""
 
-#: LogRotate/Handler.py:1824
+#: LogRotate/Handler.py:1830
 #, python-format
 msgid "Logfile '%s' has a filesize of Zero, not rotated."
 msgstr ""
 
-#: LogRotate/Handler.py:1812
+#: LogRotate/Handler.py:1818
 #, python-format
 msgid "Logfile '%s' is not a regular file, not rotated."
 msgstr ""
 
-#: LogRotate/Handler.py:738
+#: LogRotate/Handler.py:744
 #, python-format
 msgid "Logfile '%s' will NOT rotated."
 msgstr ""
 
-#: LogRotate/Config.py:2121
+#: LogRotate/Config.py:2186
 #, python-format
 msgid "Logfile '%s' will taken."
 msgstr ""
 
-#: LogRotate/Config.py:789
+#: LogRotate/Config.py:806
 msgid "Logfile pattern definition not allowed inside a logfile definition."
 msgstr ""
 
-#: LogRotate/Config.py:338
+#: LogRotate/Config.py:342
 msgid "Logrotate config reader initialised."
 msgstr ""
 
-#: LogRotate/Script.py:405
+#: LogRotate/Script.py:411
 #, python-format
 msgid "Logrotate script object '%s' will destroyed."
 msgstr ""
 
-#: LogRotate/Handler.py:346
+#: LogRotate/Handler.py:352
 msgid "Logrotating initialised."
 msgstr ""
 
-#: LogRotate/Handler.py:363
+#: LogRotate/Handler.py:369
 msgid "Logrotating ready for work."
 msgstr ""
 
-#: LogRotate/Handler.py:779
+#: LogRotate/Handler.py:785
 msgid "Looking, whether the firstaction script should be executed."
 msgstr ""
 
-#: LogRotate/Handler.py:837
+#: LogRotate/Handler.py:843
 msgid "Looking, whether the lastaction script should be executed."
 msgstr ""
 
-#: LogRotate/Handler.py:816
+#: LogRotate/Handler.py:822
 msgid "Looking, whether the postrun script should be executed."
 msgstr ""
 
-#: LogRotate/Handler.py:791
+#: LogRotate/Handler.py:797
 msgid "Looking, whether the prerun script should be executed."
 msgstr ""
 
-#: LogRotate/Mailer.py:355
+#: LogRotate/Mailer.py:359
 msgid "Mailer object will destroyed."
 msgstr ""
 
-#: LogRotate/Handler.py:1183
+#: LogRotate/Handler.py:1189
 #, python-format
 msgid "Max. count rotations: %d"
 msgstr ""
 
-#: LogRotate/Handler.py:1175
+#: LogRotate/Handler.py:1181
 #, python-format
 msgid "Maxage: %d seconds"
 msgstr ""
 
-#: LogRotate/Handler.py:902 LogRotate/Handler.py:952
+#: LogRotate/Handler.py:908 LogRotate/Handler.py:958
 #, python-format
 msgid "Moving file '%(from)s' => '%(to)s'."
 msgstr ""
 
-#: LogRotate/Handler.py:531
+#: LogRotate/Handler.py:537
 #, python-format
 msgid "Name of state file: '%s'"
 msgstr ""
 
-#: LogRotate/Config.py:847
+#: LogRotate/Config.py:867
 #, python-format
 msgid "Needless content found at the end of a logfile definition found: '%s'."
 msgstr ""
 
-#: LogRotate/Config.py:1116
+#: LogRotate/Config.py:1144
 #, python-format
 msgid "Negative value %(value)s for option '%(option)s' is not allowed."
 msgstr ""
 
-#: LogRotate/Handler.py:2086
+#: LogRotate/Handler.py:2092
 msgid ""
 "Neither 'target' nor 'statinfo' was given on calling "
 "_copy_file_metadata()."
 msgstr ""
 
-#: LogRotate/StatusFile.py:574
+#: LogRotate/StatusFile.py:584
 #, python-format
 msgid "Neither a logfile nor a date found in line '%s'."
 msgstr ""
 
-#: LogRotate/Config.py:1908
+#: LogRotate/Config.py:1966
 msgid "Nested logfile definitions are not allowed."
 msgstr ""
 
-#: LogRotate/Config.py:959
+#: LogRotate/Config.py:986
 #, python-format
 msgid "New external script name: '%s'."
 msgstr ""
 
-#: LogRotate/Config.py:933
+#: LogRotate/Config.py:960
 #, python-format
 msgid "New log script name: '%s'."
 msgstr ""
 
-#: LogRotate/Config.py:870
+#: LogRotate/Config.py:893
 msgid "New logfile definition:"
 msgstr ""
 
-#: LogRotate/Config.py:461
+#: LogRotate/Config.py:466
 #, python-format
 msgid "New taboo pattern: '%s'."
 msgstr ""
 
-#: LogRotate/Script.py:482
+#: LogRotate/Script.py:488
 #, python-format
 msgid "No command to execute defined in script '%s'."
 msgstr ""
 
-#: LogRotate/Handler.py:1086
+#: LogRotate/Handler.py:1092
 msgid "No compression defined."
 msgstr ""
 
-#: LogRotate/Getopts.py:324
+#: LogRotate/Getopts.py:328
 msgid "No configuration file given."
 msgstr ""
 
-#: LogRotate/Handler.py:1571
+#: LogRotate/Handler.py:1577
 msgid "No dirname directive for olddir given."
 msgstr ""
 
-#: LogRotate/Mailer.py:265 LogRotate/Mailer.py:446
+#: LogRotate/Mailer.py:269 LogRotate/Mailer.py:450
 #, python-format
 msgid "No execute permissions to '%s'."
 msgstr ""
 
-#: LogRotate/Config.py:861
+#: LogRotate/Config.py:882
 #, python-format
 msgid ""
 "No extension for compressed logfiles given (File of definition: "
 "'%(file)s', start definition: %(rownum)d)."
 msgstr ""
 
-#: LogRotate/Config.py:1774
+#: LogRotate/Config.py:1832
 msgid "No file or directory given in a include directive."
 msgstr ""
 
-#: LogRotate/Handler.py:672
+#: LogRotate/Handler.py:678
 msgid "No logfile definitions found."
 msgstr ""
 
-#: LogRotate/Config.py:2097
+#: LogRotate/Config.py:2162
 #, python-format
 msgid "No logfile found for pattern '%s'."
 msgstr ""
 
-#: LogRotate/Config.py:1914
+#: LogRotate/Config.py:1972
 msgid "No logfile pattern defined on starting a logfile definition."
 msgstr ""
 
-#: LogRotate/Config.py:2085
+#: LogRotate/Config.py:2150
 msgid "No logfile pattern defined."
 msgstr ""
 
-#: LogRotate/Handler.py:1908
+#: LogRotate/Handler.py:1914
 msgid "No logfiles to compress found."
 msgstr ""
 
-#: LogRotate/Handler.py:1878
+#: LogRotate/Handler.py:1884
 msgid "No logfiles to delete found."
 msgstr ""
 
-#: LogRotate/Handler.py:1170
+#: LogRotate/Handler.py:1176
 msgid "No maxage given."
 msgstr ""
 
-#: LogRotate/Handler.py:1092 LogRotate/Handler.py:1162
+#: LogRotate/Handler.py:1098 LogRotate/Handler.py:1168
 msgid "No old logfiles available."
 msgstr ""
 
-#: LogRotate/Handler.py:1131
+#: LogRotate/Handler.py:1137
 msgid "No old logfiles to compress found."
 msgstr ""
 
-#: LogRotate/Handler.py:1221
+#: LogRotate/Handler.py:1227
 msgid "No old logfiles to delete found."
 msgstr ""
 
-#: LogRotate/Handler.py:608
+#: LogRotate/Handler.py:614
 #, python-format
 msgid "No permission to signal the process %d ..."
 msgstr ""
 
-#: LogRotate/Config.py:1716
+#: LogRotate/Config.py:1774
 msgid "No script name given in a script directive."
 msgstr ""
 
-#: LogRotate/Handler.py:592
+#: LogRotate/Handler.py:598
 #, python-format
 msgid "No useful information found in PID file '%(file)s': '%(line)s'"
 msgstr ""
 
-#: LogRotate/StatusFile.py:422
+#: LogRotate/StatusFile.py:426
 #, python-format
 msgid "No write access to parent directory '%(dir)s' of status file '%(file)s'."
 msgstr ""
 
-#: LogRotate/StatusFile.py:390
+#: LogRotate/StatusFile.py:391
 #, python-format
 msgid "No write access to status file '%s'."
 msgstr ""
 
-#: LogRotate/Handler.py:1633
+#: LogRotate/Handler.py:1639
 #, python-format
 msgid "No write and execute access to olddir '%s'."
 msgstr ""
 
-#: LogRotate/Handler.py:1628
+#: LogRotate/Handler.py:1634
 #, python-format
 msgid "Olddir '%s' allready exists, not created."
 msgstr ""
 
-#: LogRotate/Handler.py:1640
+#: LogRotate/Handler.py:1646
 #, python-format
 msgid "Olddir '%s' exists, but is not a valid directory."
 msgstr ""
 
-#: LogRotate/Handler.py:1620
+#: LogRotate/Handler.py:1626
 #, python-format
 msgid "Olddir name is now '%s'."
 msgstr ""
 
-#: LogRotate/Mailer.py:273
+#: LogRotate/Mailer.py:277
 #, python-format
 msgid "Only absolute path allowed for a sendmail command: '%s'."
 msgstr ""
 
-#: LogRotate/Getopts.py:328
+#: LogRotate/Getopts.py:332
 msgid "Only one configuration file is allowed."
 msgstr ""
 
-#: LogRotate/Config.py:1782
+#: LogRotate/Config.py:1840
 msgid ""
 "Only one declaration of a file or directory is allowed in a include "
 "directive, the first one is used."
 msgstr ""
 
-#: LogRotate/Config.py:1724
+#: LogRotate/Config.py:1782
 msgid ""
 "Only one script name is allowed in a script directive, the first one is "
 "used."
 msgstr ""
 
-#: LogRotate/Handler.py:1017 LogRotate/Handler.py:1713
-#: LogRotate/Handler.py:2172
+#: LogRotate/Handler.py:1023 LogRotate/Handler.py:1719
+#: LogRotate/Handler.py:2178
 msgid "Only root may execute chown()."
 msgstr ""
 
-#: LogRotate/StatusFile.py:311
+#: LogRotate/StatusFile.py:300
 #, python-format
 msgid "Open status file '%s' for writing ..."
 msgstr ""
 
-#: LogRotate/Config.py:1061 LogRotate/Config.py:1068 LogRotate/Config.py:1076
-#: LogRotate/Config.py:1083
+#: LogRotate/Config.py:1089 LogRotate/Config.py:1096 LogRotate/Config.py:1104
+#: LogRotate/Config.py:1111
 #, python-format
 msgid "Option '%(by)s' disables option '%(what)'."
 msgstr ""
 
-#: LogRotate/Config.py:1110
+#: LogRotate/Config.py:1138
 #, python-format
 msgid "Option '%(option)s' has no integer value: %(msg)s."
 msgstr ""
 
-#: LogRotate/Config.py:1287
+#: LogRotate/Config.py:1326
 #, python-format
 msgid "Option '%(option)s' may not have a value ('%(value)s')."
 msgstr ""
 
-#: LogRotate/Config.py:1101 LogRotate/Config.py:1197 LogRotate/Config.py:1225
+#: LogRotate/Config.py:1129 LogRotate/Config.py:1225 LogRotate/Config.py:1255
 #, python-format
 msgid "Option '%s' must have a value."
 msgstr ""
 
-#: LogRotate/Config.py:1221
+#: LogRotate/Config.py:1249
 #, python-format
 msgid "Option '%s' not allowed inside a logfile directive."
 msgstr ""
 
-#: LogRotate/Config.py:1428 LogRotate/Config.py:1437
+#: LogRotate/Config.py:1475 LogRotate/Config.py:1484
 #, python-format
 msgid "Option '%s' was set, so option 'create' has no effect."
 msgstr ""
 
-#: LogRotate/Config.py:1548
+#: LogRotate/Config.py:1597
 #, python-format
 msgid "Option '%s' without a value given."
 msgstr ""
 
-#: LogRotate/Config.py:1200 LogRotate/Config.py:1227
+#: LogRotate/Config.py:1228 LogRotate/Config.py:1258
 #, python-format
 msgid "Option '%s' without a value."
 msgstr ""
 
-#: LogRotate/Config.py:1676
+#: LogRotate/Config.py:1732
 #, python-format
 msgid "Option 'taboo%s' needs a value."
 msgstr ""
 
-#: LogRotate/Config.py:1663
+#: LogRotate/Config.py:1717
 #, python-format
 msgid "Option 'taboo%s' not allowed inside a logfile directive."
 msgstr ""
 
-#: logrotate.py:78
+#: logrotate.py:82
 msgid "Options"
 msgstr ""
 
-#: LogRotate/Handler.py:564
+#: LogRotate/Handler.py:570
 #, python-format
 msgid "PID file '%s' doesn't exists."
 msgstr ""
 
-#: LogRotate/Handler.py:541
+#: LogRotate/Handler.py:547
 #, python-format
 msgid "PID file: '%s'"
 msgstr ""
 
-#: LogRotate/StatusFile.py:412
+#: LogRotate/StatusFile.py:415
 #, python-format
 msgid "Parent directory '%(dir)s' of status file '%(file)s' is not a directory."
 msgstr ""
 
-#: LogRotate/Getopts.py:246
+#: LogRotate/Getopts.py:250
 msgid "Path of PID file (different to configuration)"
 msgstr ""
 
-#: LogRotate/Getopts.py:237
+#: LogRotate/Getopts.py:241
 msgid "Path of state file (different to configuration)"
 msgstr ""
 
-#: LogRotate/Common.py:325 LogRotate/Common.py:345 LogRotate/Common.py:365
-#: LogRotate/Common.py:385 LogRotate/Common.py:405
+#: LogRotate/Common.py:335 LogRotate/Common.py:355 LogRotate/Common.py:375
+#: LogRotate/Common.py:395 LogRotate/Common.py:415
 #, python-format
 msgid "Pattern '%s'."
 msgstr ""
 
-#: LogRotate/Handler.py:731
+#: LogRotate/Handler.py:737
 #, python-format
 msgid "Performing logfile '%s' ..."
 msgstr ""
 
-#: LogRotate/StatusFile.py:494
+#: LogRotate/StatusFile.py:503
 #, python-format
 msgid "Performing status file line '%s'."
 msgstr ""
 
-#: LogRotate/StatusFile.py:430
+#: LogRotate/StatusFile.py:435
 #, python-format
 msgid "Permissions to parent directory '%s' are OK."
 msgstr ""
 
-#: LogRotate/Config.py:877
+#: LogRotate/Config.py:902
 #, python-format
 msgid "Postrotate script '%s' not found."
 msgstr ""
 
-#: LogRotate/Handler.py:604
+#: LogRotate/Handler.py:610
 #, python-format
 msgid "Process with PID %d anonymous died."
 msgstr ""
 
-#: LogRotate/Handler.py:616
+#: LogRotate/Handler.py:622
 #, python-format
 msgid "Process with PID %d is allready running."
 msgstr ""
 
-#: LogRotate/Handler.py:573
+#: LogRotate/Handler.py:579
 #, python-format
 msgid "Reading PID file '%s' ..."
 msgstr ""
 
-#: LogRotate/Config.py:714
+#: LogRotate/Config.py:730
 #, python-format
 msgid "Reading configuration from '%s' ..."
 msgstr ""
 
-#: LogRotate/StatusFile.py:476
+#: LogRotate/StatusFile.py:484
 #, python-format
 msgid "Reading status file '%s' ..."
 msgstr ""
 
-#: LogRotate/Handler.py:971
+#: LogRotate/Handler.py:977
 #, python-format
 msgid "Recreating file '%s'."
 msgstr ""
 
-#: LogRotate/Config.py:1816 LogRotate/Config.py:1875
+#: LogRotate/Config.py:1874 LogRotate/Config.py:1933
 #, python-format
 msgid "Recursive including of '%s'."
 msgstr ""
 
-#: LogRotate/Config.py:1420 LogRotate/Config.py:1535
+#: LogRotate/Config.py:1467 LogRotate/Config.py:1582
 #, python-format
 msgid "Removing '%s'."
 msgstr ""
 
-#: LogRotate/Handler.py:439
+#: LogRotate/Handler.py:445
 #, python-format
 msgid "Removing PID file '%s' ..."
 msgstr ""
 
-#: LogRotate/Config.py:397
+#: LogRotate/Config.py:401
 msgid "Resetting default values for directives to hard coded values."
 msgstr ""
 
-#: LogRotate/Common.py:419
+#: LogRotate/Common.py:429
 #, python-format
 msgid "Rest after days: '%s'."
 msgstr ""
 
-#: LogRotate/Common.py:339
+#: LogRotate/Common.py:349
 #, python-format
 msgid "Rest after hours: '%s'."
 msgstr ""
 
-#: LogRotate/Common.py:379
+#: LogRotate/Common.py:389
 #, python-format
 msgid "Rest after months: '%s'."
 msgstr ""
 
-#: LogRotate/Common.py:359
+#: LogRotate/Common.py:369
 #, python-format
 msgid "Rest after weeks: '%s'."
 msgstr ""
 
-#: LogRotate/Common.py:399
+#: LogRotate/Common.py:409
 #, python-format
 msgid "Rest after years: '%s'."
 msgstr ""
 
-#: LogRotate/Handler.py:1463
+#: LogRotate/Handler.py:1469
 #, python-format
 msgid "Resulting target '%s' exists, retrieve cyclic rotation ..."
 msgstr ""
 
-#: LogRotate/Handler.py:1416
+#: LogRotate/Handler.py:1422
 #, python-format
 msgid ""
 "Retrieving all movings and rotations for logfile '%(file)s' to target "
 "'%(target)s' ..."
 msgstr ""
 
-#: LogRotate/Handler.py:1251
+#: LogRotate/Handler.py:1257
 #, python-format
 msgid "Retrieving all old logfiles for file '%s' ..."
 msgstr ""
 
-#: LogRotate/Handler.py:1079
+#: LogRotate/Handler.py:1085
 msgid "Retrieving logfiles to compress ..."
 msgstr ""
 
-#: LogRotate/Handler.py:1155
+#: LogRotate/Handler.py:1161
 msgid "Retrieving logfiles to delete ..."
 msgstr ""
 
-#: LogRotate/Handler.py:1518
+#: LogRotate/Handler.py:1524
 #, python-format
 msgid "Retrieving the name of the rotated file of '%s' ..."
 msgstr ""
 
-#: LogRotate/Getopts.py:114
+#: LogRotate/Getopts.py:118
 msgid "Rotates, compresses and mails system logs."
 msgstr ""
 
-#: LogRotate/Handler.py:1830
+#: LogRotate/Handler.py:1836
 #, python-format
 msgid "Rotating of '%s' because of force mode."
 msgstr ""
 
-#: LogRotate/Handler.py:720
+#: LogRotate/Handler.py:726
 msgid "Rotating of logfile definition:"
 msgstr ""
 
-#: LogRotate/Config.py:1733
+#: LogRotate/Config.py:1791
 #, python-format
 msgid "Script name '%s' is allready declared, it will be overwritten."
 msgstr ""
 
-#: LogRotate/Handler.py:1361
+#: LogRotate/Handler.py:1367
 #, python-format
 msgid "Search for pattern '%s' ..."
 msgstr ""
 
-#: LogRotate/Config.py:565 LogRotate/Config.py:630
+#: LogRotate/Config.py:573 LogRotate/Config.py:642
 #, python-format
 msgid "Search path '%s' doesn't exists or is not a directory."
 msgstr ""
 
-#: LogRotate/Mailer.py:508
+#: LogRotate/Mailer.py:512
 #, python-format
 msgid "Sending mail with attached file '%(file)s' to: %(rcpt)s"
 msgstr ""
 
-#: LogRotate/Mailer.py:269
+#: LogRotate/Mailer.py:273
 #, python-format
 msgid "Sendmail command '%s' not found."
 msgstr ""
 
-#: LogRotate/Config.py:1142 LogRotate/Config.py:1183
+#: LogRotate/Config.py:1169 LogRotate/Config.py:1211
 #, python-format
 msgid "Senseless option value '%(value)s' after '%(option)s'."
 msgstr ""
 
-#: LogRotate/Mailer.py:228
+#: LogRotate/Mailer.py:232
 #, python-format
 msgid "Set sender mail address to: '%s'."
 msgstr ""
 
-#: LogRotate/Getopts.py:197
+#: LogRotate/Getopts.py:201
 msgid "Set the verbosity level"
 msgstr ""
 
-#: LogRotate/Getopts.py:186
+#: LogRotate/Getopts.py:190
 msgid "Set this do simulate commands"
 msgstr ""
 
-#: LogRotate/Config.py:1300 LogRotate/Config.py:1328
+#: LogRotate/Config.py:1341 LogRotate/Config.py:1370
 #, python-format
 msgid "Setting '%(what)s' in '%(directive)s' to %(to)f days."
 msgstr ""
 
-#: LogRotate/Config.py:1380 LogRotate/Config.py:1392
+#: LogRotate/Config.py:1426 LogRotate/Config.py:1438
 #, python-format
 msgid "Setting '%(what)s' in '%(directive)s' to %(to)s."
 msgstr ""
 
-#: LogRotate/Handler.py:2133
+#: LogRotate/Handler.py:2139
 #, python-format
 msgid "Setting atime and mtime of target '%s'."
 msgstr ""
 
-#: LogRotate/Config.py:1049
+#: LogRotate/Config.py:1077
 #, python-format
 msgid "Setting boolean option '%(option)s' in '%(directive)s' to '%(value)s'."
 msgstr ""
 
-#: LogRotate/Config.py:1267
+#: LogRotate/Config.py:1302
 #, python-format
 msgid "Setting global option '%(option)s' to '%(value)s'."
 msgstr ""
 
-#: LogRotate/Config.py:1122
+#: LogRotate/Config.py:1150
 #, python-format
 msgid "Setting integer option '%(option)s' in '%(directive)s' to '%(value)s'."
 msgstr ""
 
-#: LogRotate/Config.py:1154
+#: LogRotate/Config.py:1182
 #, python-format
 msgid "Setting mail address in '%(directive)s' to '%(addr)s'."
 msgstr ""
 
-#: LogRotate/Config.py:1174
+#: LogRotate/Config.py:1202
 #, python-format
 msgid "Setting mailfirst in '%(directive)s' to '%(value)s'."
 msgstr ""
 
-#: LogRotate/Handler.py:1023
+#: LogRotate/Handler.py:1029
 #, python-format
 msgid "Setting ownership of '%(file)s' to uid %(uid)d and gid %(gid)d."
 msgstr ""
 
-#: LogRotate/Handler.py:1002 LogRotate/Handler.py:2148
+#: LogRotate/Handler.py:1008 LogRotate/Handler.py:2154
 #, python-format
 msgid "Setting permissions of '%(target)s' to %(mode)4o."
 msgstr ""
 
-#: LogRotate/StatusFile.py:271
+#: LogRotate/StatusFile.py:260
 #, python-format
 msgid "Setting rotation date of '%(file)s' to '%(date)s' ..."
 msgstr ""
 
-#: LogRotate/Getopts.py:269
+#: LogRotate/Getopts.py:273
 msgid "Shows a help message and exit."
 msgstr ""
 
-#: LogRotate/Getopts.py:289
+#: LogRotate/Getopts.py:293
 msgid "Shows the version number of the program and exit."
 msgstr ""
 
-#: LogRotate/Config.py:571
+#: LogRotate/Config.py:579
 #, python-format
 msgid "Shred command found: '%s'."
 msgstr ""
 
-#: LogRotate/Config.py:576
+#: LogRotate/Config.py:584
 msgid "Shred command not found, shred disabled."
 msgstr ""
 
-#: LogRotate/Config.py:1847
+#: LogRotate/Config.py:1905
 #, python-format
 msgid "Skip subdirectory '%s' in including."
 msgstr ""
 
-#: LogRotate/Handler.py:1933
+#: LogRotate/Handler.py:1939
 #, python-format
 msgid "Source file '%(source)s' and target file '%(target)s' are the same file."
 msgstr ""
 
-#: LogRotate/Handler.py:1926
+#: LogRotate/Handler.py:1932
 #, python-format
 msgid "Source file '%s' for compression doesn't exists."
 msgstr ""
 
-#: LogRotate/Config.py:807
+#: LogRotate/Config.py:824
 #, python-format
 msgid "Split into parts of: '%s'"
 msgstr ""
 
-#: logrotate.py:113
+#: logrotate.py:117
 msgid "Stage 1: reading configuration"
 msgstr ""
 
-#: logrotate.py:142
+#: logrotate.py:146
 msgid "Stage 2: underlying log rotation"
 msgstr ""
 
-#: logrotate.py:148
+#: logrotate.py:152
 msgid "Stage 3: sending logfiles per mail"
 msgstr ""
 
-#: logrotate.py:154
+#: logrotate.py:158
 msgid "Stage 4: deleting of old logfiles"
 msgstr ""
 
-#: logrotate.py:160
+#: logrotate.py:164
 msgid "Stage 5: compression of old log files"
 msgstr ""
 
-#: LogRotate/Config.py:768
+#: LogRotate/Config.py:785
 msgid "Starting a logfile definition."
 msgstr ""
 
-#: LogRotate/Config.py:2021
+#: LogRotate/Config.py:2085
 msgid "Starting a new log directive with default values."
 msgstr ""
 
-#: LogRotate/Handler.py:676
+#: LogRotate/Handler.py:682
 msgid "Starting underlying rotation ..."
 msgstr ""
 
-#: LogRotate/Handler.py:691
+#: LogRotate/Handler.py:697
 #, python-format
 msgid "State of script '%s':"
 msgstr ""
 
-#: LogRotate/StatusFile.py:455
+#: LogRotate/StatusFile.py:461
 #, python-format
 msgid "Status file '%s' doesn't exists."
 msgstr ""
 
-#: LogRotate/StatusFile.py:472
+#: LogRotate/StatusFile.py:479
 #, python-format
 msgid "Status file '%s' is not a regular file."
 msgstr ""
 
-#: LogRotate/StatusFile.py:198
+#: LogRotate/StatusFile.py:186
 msgid "Status file object will destroyed."
 msgstr ""
 
-#: LogRotate/Handler.py:2417
+#: LogRotate/Handler.py:2423
 msgid "Struct files2send:"
 msgstr ""
 
-#: LogRotate/Handler.py:2001 LogRotate/Handler.py:2010
+#: LogRotate/Handler.py:2007 LogRotate/Handler.py:2016
 #, python-format
 msgid "Substituting '%(what)s' in compressoptions with '%(by)s'."
 msgstr ""
 
-#: LogRotate/Config.py:965
+#: LogRotate/Config.py:992
 #, python-format
 msgid "Syntax error in file '%(file)s', line %(line)s"
 msgstr ""
 
-#: LogRotate/Config.py:947
+#: LogRotate/Config.py:974
 msgid ""
 "Syntax error: external script definition may not appear inside of a log "
 "file definition."
 msgstr ""
 
-#: LogRotate/Config.py:897
+#: LogRotate/Config.py:924
 msgid "Syntax error: include may not appear inside of log file definition."
 msgstr ""
 
-#: LogRotate/Config.py:813
+#: LogRotate/Config.py:830
 msgid "Syntax error: open curly bracket inside alogfile pattern definition."
 msgstr ""
 
-#: LogRotate/Config.py:838
+#: LogRotate/Config.py:855
 msgid "Syntax error: unbalanced closing curly bracket found."
 msgstr ""
 
-#: LogRotate/Handler.py:2030
+#: LogRotate/Handler.py:2036
 #, python-format
 msgid ""
 "Target '%s' of compression doesn't exists after executing compression "
 "command."
 msgstr ""
 
-#: LogRotate/Handler.py:1937
+#: LogRotate/Handler.py:1943
 #, python-format
 msgid "Target file '%s' for compression allready exists."
 msgstr ""
 
-#: logrotate.py:101
+#: logrotate.py:105
 msgid "Test mode is ON."
 msgstr ""
 
-#: LogRotate/Mailer.py:435
+#: LogRotate/Mailer.py:439
 #, python-format
 msgid "Testing for '%s' ..."
 msgstr ""
 
-#: LogRotate/Handler.py:569
+#: LogRotate/Handler.py:575
 #, python-format
 msgid "Testmode, skip test of PID file '%s'."
 msgstr ""
 
-#: LogRotate/Handler.py:639
+#: LogRotate/Handler.py:645
 #, python-format
 msgid "Testmode, skip writing of PID file '%s'."
 msgstr ""
 
-#: LogRotate/Mailer.py:205
+#: LogRotate/Mailer.py:209
 msgid "The 'From' address may not set to None."
 msgstr ""
 
-#: LogRotate/Common.py:428
+#: LogRotate/Common.py:438
 #, python-format
 msgid "Total %f days found."
 msgstr ""
 
-#: LogRotate/Handler.py:937
+#: LogRotate/Handler.py:943
 #, python-format
 msgid "Truncating file '%s'."
 msgstr ""
 
-#: LogRotate/Config.py:704
+#: LogRotate/Config.py:717
 #, python-format
 msgid "Try reading configuration from '%s' ..."
 msgstr ""
 
-#: LogRotate/Handler.py:1668
+#: LogRotate/Handler.py:1674
 #, python-format
 msgid "Try to create directory '%s' ..."
 msgstr ""
 
-#: LogRotate/Handler.py:599
+#: LogRotate/Handler.py:605
 #, python-format
 msgid "Trying check for process with PID %d ..."
 msgstr ""
 
-#: LogRotate/Config.py:1497
+#: LogRotate/Config.py:1544
 #, python-format
 msgid "Trying to determine create group '%s' ..."
 msgstr ""
 
-#: LogRotate/Config.py:1458
+#: LogRotate/Config.py:1505
 #, python-format
 msgid "Trying to determine create mode '%s' ..."
 msgstr ""
 
-#: LogRotate/Config.py:1477
+#: LogRotate/Config.py:1524
 #, python-format
 msgid "Trying to determine create owner '%s' ..."
 msgstr ""
 
-#: LogRotate/Config.py:1561
+#: LogRotate/Config.py:1610
 #, python-format
 msgid "Trying to determine olddir create mode '%s' ..."
 msgstr ""
 
-#: LogRotate/Config.py:1601
+#: LogRotate/Config.py:1650
 #, python-format
 msgid "Trying to determine olddir group '%s' ..."
 msgstr ""
 
-#: LogRotate/Config.py:1581
+#: LogRotate/Config.py:1630
 #, python-format
 msgid "Trying to determine olddir owner '%s' ..."
 msgstr ""
 
-#: LogRotate/Config.py:1810
+#: LogRotate/Config.py:1868
 #, python-format
 msgid "Trying to include object '%s' ..."
 msgstr ""
 
-#: LogRotate/Handler.py:612
+#: LogRotate/Handler.py:618
 #, python-format
 msgid "Unknown error: '%s'."
 msgstr ""
 
-#: LogRotate/Config.py:1687
+#: LogRotate/Config.py:1744
 #, python-format
 msgid "Unknown option '%s'."
 msgstr ""
 
-#: LogRotate/Config.py:1025
+#: LogRotate/Config.py:1053
 #, python-format
 msgid "Unsupported option '%s'."
 msgstr ""
 
-#: LogRotate/Handler.py:1538
+#: LogRotate/Handler.py:1544
 #, python-format
 msgid "Using '%(target)s' as target for rotation of logfile '%(logfile)s'."
 msgstr ""
 
-#: LogRotate/Mailer.py:260 LogRotate/Mailer.py:441
+#: LogRotate/Mailer.py:264 LogRotate/Mailer.py:445
 #, python-format
 msgid "Using '%s' as the sendmail command."
 msgstr ""
 
-#: LogRotate/Mailer.py:410
+#: LogRotate/Mailer.py:414
 #, python-format
 msgid "Using <%s> as the sender mail address."
 msgstr ""
 
-#: LogRotate/Handler.py:1532
+#: LogRotate/Handler.py:1538
 #, python-format
 msgid "Using date extension '.%(ext)s' from pattern '%(pattern)s'."
 msgstr ""
 
-#: LogRotate/Common.py:201 LogRotate/Common.py:319
+#: LogRotate/Common.py:210 LogRotate/Common.py:329
 #, python-format
 msgid "Using radix '%s'."
 msgstr ""
 
-#: LogRotate/Config.py:1232
+#: LogRotate/Config.py:1263
 #, python-format
 msgid "Value '%(value)s' for option '%(option)s' is not an absolute path."
 msgstr ""
 
-#: logrotate.py:103
+#: logrotate.py:107
 #, python-format
 msgid "Verbose mode is ON on level: %d"
 msgstr ""
 
-#: LogRotate/Config.py:1825
+#: LogRotate/Config.py:1883
 #, python-format
 msgid "What the hell is this: '%s'."
 msgstr ""
 
-#: LogRotate/Handler.py:644
+#: LogRotate/Handler.py:650
 #, python-format
 msgid "Writing PID file '%s' ..."
 msgstr ""
@@ -1704,17 +1704,17 @@ msgstr ""
 msgid "Writing line '%s'."
 msgstr ""
 
-#: LogRotate/StatusFile.py:327
+#: LogRotate/StatusFile.py:318
 #, python-format
 msgid "Writing version line '%s'."
 msgstr ""
 
-#: logrotate.py:167
+#: logrotate.py:171
 #, python-format
 msgid "[%(date)s]: %(prog)s ended logrotation."
 msgstr ""
 
-#: logrotate.py:94
+#: logrotate.py:98
 #, python-format
 msgid "[%(date)s]: %(prog)s is starting logrotation."
 msgstr ""