logparse / parsers / cron.pyon commit major rewrite: segregate into modules and upgrade to Python 3 (4944c22)
   1#
   2#   cron.py
   3#
   4#   List the logged (executed) cron jobs and their commands
   5#   TODO: also output a list of scheduled (future) jobs
   6
   7import re
   8
   9from ..formatting import *
  10from ..util import readlog, resolve
  11from .. import config
  12
  13import logging
  14logger = logging.getLogger(__name__)
  15
  16def parse_log():
  17    output = ''
  18    logger.debug("Starting cron section")
  19    output += opentag('div', 1, 'cron', 'section')
  20    matches = re.findall('.*CMD\s*\(\s*(?!.*cd)(.*)\)', readlog(config.prefs['logs']['cron']))
  21    num = sum(1 for line in matches)
  22    commands = []
  23    for match in matches:
  24        commands.append(str(match))
  25    # commands.append([str(match)for match in matches])
  26    #logger.debug("found cron command " + str(commands))
  27    logger.info("Found " + str(num) + " cron jobs")
  28    subtitle = str(num) + " cron jobs run"
  29    output += writetitle("cron")
  30    output += writedata(subtitle)
  31    if (len(matches) > 0):
  32        commands = addtag(commands, 'code')
  33        commands = orderbyfreq(commands)
  34        commands = truncl(commands, config.prefs['maxcmd'])
  35        output += writedata("top cron commands", [c for c in commands])
  36    output += closetag('div', 1)
  37    logger.info("Finished cron section")
  38    return output