Exemple #1
0
def __statistic_analysis_data(filter_content: str):
    """
    统计分析数据
    :return:
    """
    __output_dir = MessageConfig.output_dir
    if os.path.exists(__output_dir):
        post_data_excel_reader_delegate = PostDataExcelReaderDelegate()
        reader = SingleExpectResultParse()
        access_properties = reader.access_properties()
        logon_properties = reader.logon_properties()

        reader = GroupExpectResultParse()
        access_properties.extend(reader.access_properties())
        logon_properties.extend(reader.logon_properties())

        __access_files = FileUtil.get_files_prefix(
            __output_dir, AuditType.ACCESS.analysis_pre_file_name)
        access_strategy = StrategyDelegate(access_properties, AuditType.ACCESS,
                                           filter_content)
        for access_file in __access_files:
            book = xlrd.open_workbook(access_file, 'r+b')
            sheets = book.sheets()
            for sheet in sheets:
                header = sheet.row_values(0)
                for index in range(1, sheet.nrows):
                    data = dict(zip(header, sheet.row_values(index)))
                    post_data_excel_reader_delegate.merge_data(
                        data, AuditType.ACCESS)
                    access_strategy.statistic_data(data)

        __logon_files = FileUtil.get_files_prefix(
            __output_dir, AuditType.LOGON.analysis_pre_file_name)
        logon_strategy = StrategyDelegate(logon_properties, AuditType.LOGON,
                                          filter_content)
        for logon_file in __logon_files:
            book = xlrd.open_workbook(logon_file, 'r+b')
            sheets = book.sheets()
            for sheet in sheets:
                header = sheet.row_values(0)
                for index in range(1, sheet.nrows):
                    data = dict(zip(header, sheet.row_values(index)))
                    post_data_excel_reader_delegate.merge_data(
                        data, AuditType.LOGON)
                    logon_strategy.statistic_data(data)

        access_strategy.analysis_data()
        logon_strategy.analysis_data()
    pass
Exemple #2
0
def __start_receive(need_clean: bool = False, filter_content: str = ''):
    """
    启动接收消息方法
    :return:
    """
    __shutdown()
    if need_clean:
        __files = []
        __files += FileUtil.get_files_prefix(
            MessageConfig.output_dir, AuditType.ACCESS.analysis_pre_file_name)
        __files += FileUtil.get_files_prefix(
            MessageConfig.output_dir, AuditType.LOGON.analysis_pre_file_name)
        for __file in __files:
            os.remove(__file)
    file_path = FileUtil.get_project_path(
    ) + "\\config\\receive-0.0.1-SNAPSHOT.jar"
    operating_system = SystemUtil.get_operating_system()
    if operating_system == 'Windows':
        command = "start javaw -jar " + file_path
    else:
        command = "nohup java -jar " + file_path
    arg0 = "--spring.activemq.broker-url=tcp://" + MessageConfig.host + ":" + str(
        MessageConfig.port)
    arg1 = "--spring.activemq.user="******"--spring.activemq.password="******"--message.output.path=" + MessageConfig.output_dir
    arg4 = "--message.filters=" + filter_content
    cmd = [command, arg0, arg1, arg2, arg3, arg4]
    command = " ".join(cmd)
    p = subprocess.Popen(command,
                         shell=True,
                         stdout=open(MessageConfig.log_dir + "receive.log",
                                     "w"),
                         stderr=subprocess.STDOUT)
    p.communicate()
    p.wait()

    time.sleep(MessageConfig.analysis_wait_time)
    __shutdown()