Пример #1
0
 def __init__(self, project):
     ProjectAgent.__init__(self, project, "syslog")
     self.syslog = FileWatch(project,
                             open('/var/log/syslog'),
                             'syslog:syslog',
                             start='end')
     self.messages = FileWatch(project,
                               open('/var/log/messages'),
                               'syslog:messages',
                               start='end')
Пример #2
0
 def create(self, project, filename):
     if exists(filename):
         return FileWatch(project,
                          open(filename),
                          'syslog:%s' % basename(filename),
                          start='end')
     else:
         self.warning("Skip (non existent) log file: %s" % filename)
         return None
Пример #3
0
def setupProject(project):
    # Some options
    DEBUG = False
    USE_STDOUT = DEBUG
    sql = GenerateSQL(project, "sql")
    if DEBUG:
        sql.max_nb_instr = 1

    # Watch mysqld process
    mysqld = AttachProcess(project, 'mysqld')
    mysqld.max_memory = 300*1024*1024
    if USE_STDOUT:
        stdout = 'file'
    else:
        stdout = 'null'

    # MySQL client used to send fuzzy SQL
    process = MysqlProcess(project, ['/usr/bin/mysql'], stdout)
    WatchProcess(process, exitcode_score=0.15, timeout_score=0.15)
    if USE_STDOUT:
        stdout = WatchStdout(process)
        stdout.ignoreRegex('You have an error in your SQL syntax; check the manual')
        if not DEBUG:
            stdout.words['error'] = 0.10
        else:
            stdout.words['error'] = 1.0

    # Watch logs
    syslog = Syslog(project)
    mysql_log = FileWatch(project, open('/var/log/mysql/mysql.log'),
        'mysql.log', start="end")
    # FileWatch(project, open('/var/log/mysql/mysql.err'), 'mysql.err', start="end"),
    logs = [
        syslog.syslog, syslog.messages,
        mysql_log,
    ]
    for log in logs:
        log.words['mysqld'] = 1.0
Пример #4
0
 def __init__(self, process):
     FileWatch.__init__(self, process.project(), None, "watch:stdout")
     self.process = weakref_ref(process)
Пример #5
0
 def deinit(self):
     FileWatch.deinit(self)
     self.file_obj = None
Пример #6
0
 def deinit(self):
     FileWatch.deinit(self)
     self.close()
Пример #7
0
 def __init__(self, process):
     FileWatch.__init__(self, process.project(), None, "watch:stdout")
     self.process = weakref_ref(process)
Пример #8
0
def setupProject(project):
    FileWatch(project, open('/var/log/Xorg.0.log'), "Xorg.log", start="end")
    GenerateCode(project, "x11.c")
    process = X11Process(project, name="x11")
    process.env.copy('DISPLAY')
    WatchProcess(process)
Пример #9
0
 def deinit(self):
     FileWatch.deinit(self)
     self.file_obj = None
Пример #10
0
def setupProject(project):
    USE_DAEMON = True
    if USE_DAEMON:
        NB_FILE = 3
        PROGRAM = 'clamdscan'
    else:
        NB_FILE = 20
        PROGRAM = 'clamscan'

    orig_filename = project.application().getInputFilename("ClamAV valid file (eg. program)")

    mangle = AutoMangle(project, orig_filename, NB_FILE)
    mangle.config.max_op = 100
    mangle.config.change_size = True

    # Watch clamd server
    if USE_DAEMON:
        AttachProcess(project, 'clamd')

    process = ClamavProcess(project, [PROGRAM], timeout=100.0)
    WatchProcess(process, exitcode_score=0.10)

    if USE_DAEMON:
        log = FileWatch(project, open('/var/log/clamav/clamav.log'),
            'clamav.log', start="end")
    else:
        log = WatchStdout(process)
    log.ignoreRegex('SCAN SUMMARY')
    log.ignoreRegex(': OK$')
    log.ignoreRegex('^Infected files: ')
    log.ignoreRegex('^Time: ')
    log.addRegex(' FOUND$', 0.05)
    log.words['error'] = 0.30 / NB_FILE
    log.patterns[r"Can't connect to clamd"] = 1.0
    log.show_not_matching = True
Пример #11
0
 def deinit(self):
     FileWatch.deinit(self)
     self.close()