CN104933101B - 一种基于svn的配置审计信息自动统计方法 - Google Patents

一种基于svn的配置审计信息自动统计方法 Download PDF

Info

Publication number
CN104933101B
CN104933101B CN201510285629.XA CN201510285629A CN104933101B CN 104933101 B CN104933101 B CN 104933101B CN 201510285629 A CN201510285629 A CN 201510285629A CN 104933101 B CN104933101 B CN 104933101B
Authority
CN
China
Prior art keywords
log files
file
raw log
change operation
svn
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201510285629.XA
Other languages
English (en)
Other versions
CN104933101A (zh
Inventor
贺昀轩
钟理
刘湘田
李文波
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
CRRC Zhuzhou Institute Co Ltd
Original Assignee
CSR Zhuzou Institute Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by CSR Zhuzou Institute Co Ltd filed Critical CSR Zhuzou Institute Co Ltd
Priority to CN201510285629.XA priority Critical patent/CN104933101B/zh
Publication of CN104933101A publication Critical patent/CN104933101A/zh
Application granted granted Critical
Publication of CN104933101B publication Critical patent/CN104933101B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1805Append-only file systems, e.g. using logs or journals to store data
    • G06F16/1815Journaling file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/1734Details of monitoring file system events, e.g. by the use of hooks, filter drivers, logs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2462Approximate or statistical queries

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Probability & Statistics with Applications (AREA)
  • Fuzzy Systems (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开一种基于SVN的配置审计信息自动统计方法,步骤包括:1)在指定的统计时间段内查询SVN服务器上版本库信息,筛选出当前统计时间段与上一次统计时间段之间所有的用户变更操作所对应的原始日志文件,并复制一份筛选得到的原始日志文件;2)分别对复制得到的各原始日志文件进行解析,获取包括变更操作账号、时间、变更操作文件路径、文件操作状态的变更操作信息;3)统计每个原始日志文件获取得到的变更操作信息,得到当前统计时间段内的变更操作以及操作对应关系并存储至统计数据库中。本发明具有实现方法简单、应用范围广、不需要依赖于用户权限且统计效率高、统计方式灵活的优点。

Description

一种基于SVN的配置审计信息自动统计方法
技术领域
本发明涉及配置管理技术领域,尤其涉及一种基于SVN的配置审计信息自动统计方法。
背景技术
配置管理是指通过技术或行政手段对软件产品及其开发过程和生命周期进行控制规范的一系列措施,其目的是记录软件产品的演化过程,并确保开发人员在软件生命周期中各个阶段都能得到产品的精确配置信息。配置管理中重要的一项内容就是跟踪每个变更的创造者、时间和原因,以便迅速定位问题。
目前大部分软件产品的配置管理主要通过Subversion(简称SVN)来实现,在每次提交变更时SVN会产生一次版本,而变更的记录则分散放置在各日志文件中。目前基于SVN的配置管理审计方法主要是利用SVN本身提供的日志导出功能,将日志文件导出到本地后再进行二次加工,但是基于SVN本身提供的日志导出功能进行配置审计信息统计存在以下问题:
1)必须提供申请用户及密码,同时受用户权限的限制。SVN本身提供的日志导出功能是基于申请者的用户权限,即申请者仅能访问及提取出权限内的日志内容,将版本、操作者、时间、消息、文件状态等信息采集后,再写入到单个日志文件中。如果申请者没有对SVN仓库中所需要访问目录的访问权限,则无法导出这些目录的日志。例如,SVN版本库在创建trunk文件夹时,默认只对创建者的用户分配了读写权限,而其他用户没有对trunk文件夹的读取权限,如果使用其他用户申请读取SVN日志时,不能获取完整的SVN日志。而通常配置管理并没有固定的管理员用户,因而无法实现随时获取全版本的日志;
2)在实际应用中的统计工作量大、统计效率低。对于保密性强的项目由于不允许存在可访问全局的用户,因而必须要使用多个权限不同的账号执行多次导出日志以获取完整的SVN日志;对于大型软件(例如数百万行代码)和大型团队(例如数百名用户)来说,当需要审查统计SVN的配置管理信息,或者需要对产品某个时间段的代码提交情况进行跟踪时,也只能通过以手动方式导出所有SVN的相关日志信息,然后再进行处理,导致需要耗费大量的时间和人力资源;对于跨度时间长的日志,SVN需要大量的时间进行提取和解析;
3)统计方法固定,每次仅能根据申请者的需要进行一种方式的统计,当统计申请者需要更新统计条件时,则需要重新导出多种符合条件的日志文件进行统计分析。
发明内容
本发明要解决的技术问题就在于:针对现有技术存在的技术问题,本发明提供一种实现方法简单、应用范围广、不需要依赖于用户权限且统计效率高、统计方式灵活的基于SVN的配置审计信息自动统计方法。
为解决上述技术问题,本发明提出的技术方案为:
一种基于SVN的配置审计信息自动统计方法,步骤包括:
1)文件提取:在指定的统计时间段内查询SVN服务器上版本库信息,筛选出当前统计时间段与上一次统计时间段之间所有的变更操作所对应的原始日志文件,并复制一份筛选得到的原始日志文件;
2)文件解析:分别对复制得到的各原始日志文件进行解析,从每个原始日志文件中获取包括变更操作所对应的操作对象、操作时间、文件路径以及文件操作状态的变更操作信息;
3)信息统计:统计每个原始日志文件获取得到的变更操作信息,得到当前统计时间段内的变更操作以及变更操作与操作对象、操作时间、文件路径、文件操作状态之间的操作对应关系并存储至统计数据库中。
作为本发明的进一步改进,所述步骤1)的具体步骤为:
1.1)在指定的统计时间段内启动查询SVN服务器上版本库信息的程序;
1.2)从用于存放版本库信息的版本库记录表中查询是否存在所要操作的版本库,如果存在,则获取版本库记录表中所要操作的版本库对应的编号并发送至统计数据库中,转入执行步骤1.3);如果不存在,为所要操作的版本库分配对应的编号并发送至统计数据库中,转入执行步骤1.3);
1.3)定位版本库内存储原始日志文件的原始日志文件夹,筛选出其中在当前统计时间段与上一次统计时间段之间所有的变更操作所对应的原始日志文件;所述原始日志文件包括记录有变更操作所对应的操作对象、操作时间的第一原始日志文件,以及记录有变更操作所对应的文件路径、文件操作状态的第二原始日志文件;
1.4)将筛选得到的原始日志文件复制至指定的临时目录位置下,且当所有筛选出的日志文件都复制完成后添加复制完成标识。
作为本发明的进一步改进,所述步骤1)中还包括锁定SVN服务器以阻止版本库接收变更操作的步骤。
作为本发明的进一步改进,所述步骤2)的具体步骤为:
2.1)周期检测所述临时目录位置下文件,当检测到复制完成标识时,转入执行步骤2.2);
2.2)将所述临时目录位置下所有的原始日志文件进行排序,并根据排序后的原始日志文件建立一个文件顺序列表;
2.3)根据建立的所述文件顺序列表依次对各原始日志文件进行解析,对每个原始日志文件进行解析时,获取各原始日志文件对应的版本号信息,并从第一原始日志文件中获取变更操作所对应的操作对象、操作时间信息,以及从第二原始日志文件中获取变更操作所对应的文件路径、文件操作状态信息,将获取的信息分别发送至统计数据库;直至完成所有原始日志文件的解析,生成解析完成标识;
2.4)当检测到解析完成标识时,清除临时目录位置下的所有文件并退出。
作为本发明的进一步改进:所述步骤2.3)中采用关键词搜索的方法获取第一原始日志文件中变更操作所对应的操作对象、操作时间;所述步骤2.3)中采用关键词搜索的方法获取第二原始日志文件中变更操作所对应的文件路径、文件操作状态。
作为本发明的进一步改进,所述步骤3)的具体步骤为:
3.1)预先在统计数据库中建立变更操作记录表以及变更路径记录表,所述变更操作记录表用于存放用户提交的变更操作,所述变更路径记录表用于存放变更操作对应的文件路径;
3.2)统计数据库接收所述步骤1)得到的版本库编号并写入所述版本库记录表中;统计数据库接收接收所述步骤2)解析得到的变更操作所对应的操作账号、操作时间,并根据当前版本库的编号写入所述变更操作表中对应位置;所述统计数据库接收解析得到的变更操作所对应的变更操作文件路径、文件操作状态,并根据当前版本库的编号写入变更路径表中对应位置;
3.2)根据所述变更操作记录表、变更路径记录表以及所述版本库记录表、用于存放SVN版本库中的账号和用户对象之间映射关系的用户记录表,得到当前时间段内统计的各变更操作以及各变更操作与版本库、操作对象、操作时间、文件路径、文件操作状态的操作对应关系。
作为本发明的进一步改进,所述步骤3)后还包括审计报告生成步骤4),具体步骤为:
4.1)当接收到终端需要对SVN服务器上版本库信息进行审计的统计请求时,连接所述统计数据库并获取统计数据库中不同时间段内的变更操作以及所述操作对应关系;
4.2)根据获取得到的变更操作以及操作对应关系按照所述统计请求生成版本库信息的审计报告输出至终端。
与现有技术相比,本发明的优点在于:
1)本发明通过获取变更操作对应的原始日志文件进行解析,获取得到更新时间段内的变更操作以及变更操作与操作对象、操作时间、文件路径、文件操作状态之间的操作对应关系,实现配置审计信息的自动统计,不需要依赖于统计申请者的用户权限可以直接访问版本库全局的日志;且由于文件解析及信息统计时仅涉及用户的操作内容,不涉及用户提交文件的具体内容,因而能够确保文件本身的保密性能;
2)本发明在指定的时间段内获取原始日志文件进行解析,不同时间段所得到的信息统计结果存储至统计数据库中,则当需要进行配置审计时可以从统计数据库中快速、高效的获取统计结果,节省了大量的实时版本提取及解析时间,避免由于时间跨度大所造成的统计效率低的问题;
3)本发明在接收到统计请求时,由统计数据库中统计得到的所有变更操作以及操作对应关系可以根据不同的统计条件生成对应的审计报告,且不需要重新导出日志文件,统计方式灵活且统计效率高。
附图说明
图1是本实施例基于SVN的配置审计信息自动统计方法的实现流程示意图。
图2是本发明基于SVN的配置审计信息自动统计方法在具体实施例中实现流程示意图。
图3是本发明具体实施例中统计数据库的变更操作属性结果示意图。
图4是本发明具体实施例中审计报告生成的结果示意图。
具体实施方式
以下结合说明书附图和具体优选的实施例对本发明作进一步描述,但并不因此而限制本发明的保护范围。
如图1所示,本实施例基于SVN的配置审计信息自动统计方法,步骤包括:
1)文件提取:在指定的统计时间段内查询SVN服务器上版本库信息,筛选出当前统计时间段与上一次统计时间段之间所有的用户变更操作所对应的原始日志文件,并复制一份筛选得到的原始日志文件;
2)文件解析:分别对复制得到的各原始日志文件进行解析,从每个原始日志文件中获取包括变更操作所对应的操作对象、操作时间、文件路径以及文件操作状态的变更操作信息;
3)信息统计:统计每个原始日志文件获取得到的变更操作信息,得到当前统计时间段内的变更操作以及变更操作与操作对象、操作时间、文件路径、文件操作状态之间的操作对应关系并存储至统计数据库中。
原始日志文件是SVN服务器端在每次有提交操作后自动生成的一类文本文档,当用户通过SVN客户端提取日志时,SVN服务器会根据原始日志文件中该用户的信息生成一份日志文件给用户。SVN的日志记录时,每当用户提交文件到SVN服务器的时候,SVN服务器程序就会在文件系统上自动创建两个原始日志文件,两个原始日志文件中一个为第一原始日志文件,记录版本库的最新版本(Revision)、操作对象、操作时间以及操作者提交时编写的消息;另一个为第二原始日志文件,记录提交的文件的路径、内容以及文件操作状态(例如被添加/被删除/被修改)。本实施例通过在指定的时间段内获取变更操作对应的该两个原始日志文件进行解析,由原始日志文件解析得到变更操作以及操作对应关系进行统计,不需要依赖于统计申请者的用户权限可以直接访问版本库全局的日志;且由于文件解析及信息统计时仅涉及用户的操作内容,不涉及用户提交文件的具体内容,因而能够确保文件本身的保密性能。
SVN版本库建立时,同时建立两个分别用于存储各变更操作的第一原始日志文件、第二原始日志文件的原始日志文件夹revprops和revs,第一原始日志文件、第二原始日志文件分别按照更新时间命名及存储,由名称标识原始日志文件对应的版本号以及文件顺序。两个原始日志文件夹的目录结构一致,初始状态时原始日志文件夹revprops和revs中只有一个名称为“0”的文件夹,每当用户提交一次变更操作(如添加文件、修改文件、删除文件)到版本库,这两个原始文件夹中都会生成一个对应的原始日志文件,以“0”开始,再提交一次变更操作生成名称为“1”的文件夹,以此类推,每当“0”文件夹中存在1000个日志文件时(即生成文件名为999的文件时),下次接收到提交的变更操作时,服务器会在“0”文件夹的同级目录中创建一个名称为“1”的文件夹,然后“在1”文件夹中生成“0”文件,随后是“1”文件,以此类推。
由于SVN日志中,某一提交时间可能对应多个变更操作,某一产品的SVN版本库可能对应多名用户,因此在统计数据库(本实施采用开源数据库软件MYSQL 5.5.32)中建立4个记录表,分别为repo版本库记录表、user用户记录表、action变更操作记录表以及path变更路径记录表,其中repo版本库记录表用于存放版本库信息,user用户记录表用于存放SVN版本库中的账号和实际用户姓名的对应映射关系,action变更操作记录表用于基于时间存放用户提交的变更操作,path变更路径记录表用于存放变更操作对应的文件路径,其中user记录表需要根据用户与账号的变更进行定期维护。每个记录表具有自动递增的id属性,即写一次数据则id自动加1,以确保每个数据的唯一性。
本实施例中,步骤1)的具体步骤为:
1.1)在指定的统计时间段内启动查询SVN服务器上版本库信息程序;
1.2)从用于存放版本库信息的版本库记录表中查询是否存在所要操作的版本库,如果存在,则获取版本库记录表中所要操作的版本库对应的编号并发送至统计数据库中,转入执行步骤1.3);如果不存在,为所要操作的版本库分配对应的编号并发送至统计数据库中,转入执行步骤1.3);
1.3)定位版本库内存储原始日志文件的原始日志文件夹,筛选出其中在当前统计时间段与上一次统计时间段之间所有的变更操作所对应的原始日志文件;原始日志文件包括记录有变更操作所对应的操作对象、操作时间的第一原始日志文件,以及记录有变更操作所对应的文件路径、文件操作状态的第二原始日志文件;
1.4)将筛选得到的原始日志文件复制至指定的临时目录位置下,且当所有筛选出的日志文件都复制完成后添加复制完成标识。
本实施例执行文件提取前,首先从repo版本库记录表中查询所要操作的版本库编号,获取版本库信息发送至统计数据库,以将统计的变更操作与版本库对应;定位到两个原始日志文件夹revprops和revs后,筛选出其中变更操作对应的第一、第二原始日志文件;将筛选得到的原始日志文件分别复制到指定的临时目录位置下,在复制完成时即添加复制完成标识,以在判断到复制完成时自动启动后续的文件解析操作。
本实施例中,步骤1)中还包括锁定SVN服务器以阻止版本库接收变更操作的步骤。通过锁定SVN服务器,使得服务器在统计时间段内阻止版本库接受变更操作的提交,以确保不会漏失提交操作记录。
本实施例中,步骤2)的具体步骤为:
2.1)周期检测临时目录位置下文件,当检测到复制完成标识时,转入执行步骤2.2);
2.2)将临时目录位置下所有的原始日志文件进行排序,并根据排序后的原始日志文件建立一个文件顺序列表;
2.3)根据建立的文件顺序列表依次对各原始日志文件进行解析,对每个原始日志文件进行解析时,获取各原始日志文件对应的版本号信息,并从第一原始日志文件中获取变更操作所对应的操作对象、操作时间信息,以及从第二原始日志文件中获取变更操作所对应的文件路径、文件操作状态信息,将获取的信息分别发送至统计数据库;直至完成所有原始日志文件的解析,生成解析完成标识;
2.4)当检测到解析完成标识时,清除临时目录位置下的所有文件并退出。
本实施例在检测到文件复制操作完成后,将复制的所有原始日志文件按照名称进行排序,并建立一个对应的文件顺序列表,按照文件顺序列表的顺序对各原始日志文件进行解析,从原始日志文件的文件名称中获取SVN版本号,从第一原始日志文件中解析出变更操作所对应的操作账号、操作时间以及可根据实际需求解析出日志内容等,以及从第二原始日志文件解析出变更操作所对应的文件路径、文件操作状态,分别发送给统计数据库。由user用户记录表即可得到操作账号对应的操作用户对象。完成所有日志文件的解析后生成解析完成标识,以及时清除临时目录位置下的所有文件。
本实施例中,步骤2.3)中采用关键词搜索的方法获取每个原始日志文件中变更操作所对应的操作对象、操作时间;步骤2.3)中采用关键词搜索的方法获取每个原始日志文件中变更操作的文件路径、文件操作状态。对第一原始日志文件解析时,从更新版本信息原始日志文件的头部开始扫描,根据其中的关键词svn: 获取变更操作对应的操作账号、操作时间、日志内容,例如分别对应为svn:author,svn:date,svn:log,直至扫描到“END”时结束;对第二原始日志文件解析时,从日志文件的“ENDREP”字段开始扫描,根据其中的关键词type、cpath、*-dir/*-file获取提交的变更操作的文件路径、文件操作状态。
本实施例中,步骤3)的具体步骤为:
3.1)预先在统计数据库中建立变更操作记录表以及变更路径记录表,变更操作记录表用于存放用户提交的变更操作,变更路径记录表用于存放变更操作对应的文件路径;
3.2)统计数据库接收步骤1)得到的版本库编号并写入版本库记录表中;统计数据库接收接收步骤2)解析得到的变更操作所对应的操作账号、操作时间,并根据当前版本库的编号写入变更操作表中对应位置;统计数据库接收解析得到的变更操作所对应的变更操作文件路径、文件操作状态,并根据当前版本库的编号写入变更路径表中对应位置;
3.2)根据变更操作记录表、变更路径记录表以及版本库记录表、用于存放SVN版本库中的账号和用户对象之间映射关系的用户记录表,得到当前时间段内统计的各变更操作以及各变更操作与版本库、操作对象、操作时间、文件路径、文件操作状态的操作对应关系。
本实施例将解析得到的版本号、变更操作所对应的操作账号、操作时间按照顺序写入action变更操作记录表的“revision”、“actor”、“time”和“log”属性中,将解析得到的文件路径和文件操作状态分别写入path变更路径记录表的“path”、“status”属性中。由action变更操作记录表、path变更路径记录表即记录着变更操作以及变更操作与操作对象、操作时间、文件路径、文件操作状态的操作对应关系。当然在其他实施例中,还可以根据实际需求增加对应变更操作的其他记录属性。
本实施例中,步骤3)后还包括审计报告生成步骤4),具体步骤为:
4.1)当接收到终端需要对SVN服务器上版本库信息进行审计的统计请求时,连接统计数据库并获取统计数据库中不同时间段内的变更操作以及操作对应关系;
4.2)根据获取得到的变更操作以及操作对应关系按照统计请求生成版本库信息的审计报告输出至终端。
本实施例在接收到统计请求时,由统计数据库中统计得到的所有变更操作以及操作对应关系可以根据不同的统计条件生成对应的审计报告,且不需要重新导出日志文件,统计方式灵活且统计效率高。
如图2所示,本发明基于SVN的配置审计信息自动统计方法在具体实施例中,通过设置采集原始日志文件并进行解析的采集解析程序、根据统计请求生成审计报告的报告生成程序,其中采集解析程序具体包括服务器锁定模块、查询模块、解析模块、传递模块和写入模块部分,锁定模块、查询模块、解析模块、传递模块程序安装于SVN服务器上,写入模块以及报告生成报告安装于统计数据库所在的独立服务器上,且该独立服务器与SVN服务器联网连接,详细步骤为:
①设定数据库;
在统计数据库中建立repo版本库记录表、user用户记录表、action变更操作记录表以及path变更路径记录表4个表;
②利用操作系统的任务计划功能,在SVN服务器上每天固定时间(例如0:00)自动启动采集解析程序;
③锁定服务器;
采集解析程序启动后,首先启动锁定模块对SVN的版本库进行只读锁定,并在SVNhook脚本中加入提示信息,例如在某时间段内(如0:00到3:00),当用户对SVN版本库进行提交操作时,由hook脚本自动对用户弹出提示信息:“SVN正在进行维护,请在3:00以后进行提交操作!”,并阻止版本库接受该次的提交变更操作,以确保进行日志采集的时间段内不会漏失提交操作记录;
④原始日志文件查询
在锁定模块启动后,程序启动查询模块,查询模块从统计数据库的repo版本库记录表中查询是否存在要操作的版本库名称,如果存在,则使用“repo”表中版本库对应的编号,将此编号发给传递模块;如果不存在要操作的版本库名称,则表明为新的版本库,查询模块在repo版本库记录表中创建新的版本库名称并分配新的编号,将此编号发给传递模块;
传递模块远程连接写入模块并发送编号信息,写入模块在action变更操作记录表中写入版本库编号;
查询模块定位到SVN版本库内的两个原始日志文件夹,根据设定的采集时间段筛选出创建时间在当前统计时间与上次统计时间之间一天内的所有原始日志文件。例如,设定采集时间设置为3:00时,筛选创建时间在前一天3:00到程序启动时的时间段内的所有原始日志文件;
⑤原始日志文件复制
查询模块将筛选出的原始日志文件复制到程序指定的临时目录并按照顺序重命名,revprops文件夹下的日志文件重命名为revprops_A_B,revs文件夹下的日志文件重命名为revs_A_B,其中A代表该日志文件所在的目录名,B代表该日志文件的原始名称,由A、B标识SVN版本号以及文件顺序;例如,对于revprops文件夹下“0”子文件夹的“78”日志文件,则重命名为revprops_0_78”,所有筛选出的日志文件都复制完成后,查询模块在临时目录内创建一个“ok”文件作为文件复制完成标识;
⑥原始日志文件解析及信息统计
本实施例在执行文件解析的同时进行信息统计,每个原始日志文件完成文件解析后即将获取的信息发送至写入模块执行信息统计,具体步骤为:
解析模块从revprops_A_B的日志文件头部开始扫描,根据关键词svn:获取提交的变更操作的账号、时间、日志内容,直至扫描到END结束,然后将日志文件名(即SVN版本号)以及获取的信息发给传递模块,传递模块在主机上建立revprops待写数据列表,并远程连接到写入模块,将revprops文件夹对应的待写数据列表发送给写入模块;写入模块在数据库服务器端将接收到的revprops待写数据列表按数字编号重新命名,再根据待写数据列表的名称顺序将待写数据的内容分别写入action变更操作记录表对应的“revision”、“actor”、“time”和“log”属性中。统计数据库中存放的各变更操作属性如图3所示,其中repo对应版本库编号;
解析模块从命名为“revs_*”的日志文件的ENDREP字段开始往下扫描,根据其中的关键词type、cpath、*-dir/*-file获取提交操作的文件路径和文件操作状态,将获取到的信息发给传递模块,传递模块在主机上建立revs待写数据列表,并远程连接到写入模块,将revs待写数据列表发送给写入模块;写入模块在数据库服务器端将接收到的revs待写数据列表按数字编号重新命名,再根据待写数据列表的名称顺序,将待写数据的内容分别写入path变更路径表的对应“path”、“status”属性中;
解析模块在解析完成最后一个文件时,生成解析完成标识complete文件;
主程序检测到解析完成标识complete文件后,清除临时目录下的所有文件,程序退出;⑦统计报告生成
本实施例报告生成程序在统计数据库服务器上以Web服务方式运行,提供Web界面操作,其他用户终端则可以通过浏览器登录数据库服务器页面,如图4所示,在选择SVN统计条件之后,启动报告生成程序按照选择的统计条件查询统计数据库中信息,并将查询到的信息显示在Web页面中;在实际应用中也可以通过连接统计数据库,利用数据库的查询功能筛选出需要的数据并进行导出,导出的数据则可以直接利用图表软件(如excel)进行统计。
上述只是本发明的较佳实施例,并非对本发明作任何形式上的限制。虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明。因此,凡是未脱离本发明技术方案的内容,依据本发明技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均应落在本发明技术方案保护的范围内。

Claims (7)

1.一种基于SVN的配置审计信息自动统计方法,其特征在于,步骤包括:
1)文件提取:每当用户提交文件到SVN服务器的时候,SVN服务器程序就会在文件系统上自动创建两个原始日志文件,两个原始日志文件中一个为第一原始日志文件,记录包括版本库的操作对象、操作时间;另一个为第二原始日志文件,记录包括提交的文件路径以及文件操作状态;在指定的统计时间段内查询SVN服务器上版本库信息,筛选出当前统计时间段与上一次统计时间段之间所有的变更操作所对应的所述原始日志文件,并复制一份筛选得到的原始日志文件;
2)文件解析:分别对复制得到的各原始日志文件进行解析,从每个原始日志文件中获取包括变更操作所对应的操作对象、操作时间、文件路径以及文件操作状态的变更操作信息;
3)信息统计:统计每个原始日志文件获取得到的变更操作信息,得到当前统计时间段内的变更操作以及变更操作与操作对象、操作时间、文件路径、文件操作状态之间的操作对应关系并存储至统计数据库中。
2.根据权利要求1所述的基于SVN的配置审计信息自动统计方法,其特征在于,所述步骤1)的具体步骤为:
1.1)在指定的统计时间段内启动查询SVN服务器上版本库信息的程序;
1.2)从所述统计数据库中用于存放版本库信息的版本库记录表中查询是否存在所要操作的版本库,如果存在,则获取版本库记录表中所要操作的版本库对应的编号并发送至统计数据库中,转入执行步骤1.3);如果不存在,为所要操作的版本库分配对应的编号并发送至统计数据库中,转入执行步骤1.3);
1.3)定位版本库内存储原始日志文件的原始日志文件夹,筛选出其中在当前统计时间段与上一次统计时间段之间所有的变更操作所对应的原始日志文件;所述原始日志文件包括记录有变更操作所对应的操作对象、操作时间的第一原始日志文件,以及记录有变更操作所对应的文件路径、文件操作状态的第二原始日志文件;
1.4)将筛选得到的原始日志文件复制至指定的临时目录位置下,且当所有筛选出的日志文件都复制完成后添加复制完成标识。
3.根据权利要求2所述的基于SVN的配置审计信息自动统计方法,其特征在于,所述步骤1)中还包括锁定SVN服务器以阻止版本库接收变更操作的步骤。
4.根据权利要求3所述的基于SVN的配置审计信息自动统计方法,其特征在于,所述步骤2)的具体步骤为:
2.1)周期检测所述临时目录位置下文件,当检测到复制完成标识时,转入执行步骤2.2);
2.2)将所述临时目录位置下所有的原始日志文件进行排序,并根据排序后的原始日志文件建立一个文件顺序列表;
2.3)根据建立的所述文件顺序列表依次对各原始日志文件进行解析,对每个原始日志文件进行解析时,获取各原始日志文件对应的版本号信息,并从第一原始日志文件中获取变更操作所对应的操作账号、操作时间信息,以及从第二原始日志文件中获取变更操作所对应的文件路径、文件操作状态信息,将获取的信息分别发送至统计数据库;直至完成所有原始日志文件的解析,生成解析完成标识;
2.4)当检测到解析完成标识时,清除临时目录位置下的所有文件并退出。
5.根据权利要求4所述的基于SVN的配置审计信息自动统计方法,其特征在于:所述步骤2.3)中采用关键词搜索的方法获取第一原始日志文件中变更操作所对应的操作对象、操时间;所述步骤2.3)中采用关键词搜索的方法获取第二原始日志文件中变更操作所对应的文件路径、文件操作状态。
6.根据权利要求4所述的基于SVN的配置审计信息自动统计方法,其特征在于,所述步骤3)的具体步骤为:
3.1)预先在统计数据库中建立变更操作记录表以及变更路径记录表,所述变更操作记录表用于存放用户提交的变更操作,所述变更路径记录表用于存放变更操作对应的文件路径;
3.2)统计数据库接收所述步骤1)得到的版本库编号并写入所述版本库记录表中;统计数据库接收所述步骤2)解析得到的变更操作所对应的操作账号、操作时间,并根据当前版本库的编号写入所述变更操作表中对应位置;所述统计数据库接收解析得到的变更操作所对应的变更操作文件路径、文件操作状态,并根据当前版本库的编号写入变更路径表中对应位置;
3.2)根据所述变更操作记录表、变更路径记录表以及所述版本库记录表、用于存放SVN版本库中的账号和用户对象之间映射关系的用户记录表,得到当前时间段内统计的各变更操作以及各变更操作与版本库、操作对象、操作时间、文件路径、文件操作状态的操作对应关系。
7.根据权利要求1~6中任意一项所述的基于SVN的配置审计信息自动统计方法,其特征在于,所述步骤3)后还包括审计报告生成步骤4),具体步骤为:
4.1)当接收到终端需要对SVN服务器上版本库信息进行审计的统计请求时,连接所述统计数据库并获取统计数据库中不同时间段内的变更操作以及所述操作对应关系;
4.2)根据获取得到的变更操作以及操作对应关系按照所述统计请求生成版本库信息的审计报告输出至终端。
CN201510285629.XA 2015-05-29 2015-05-29 一种基于svn的配置审计信息自动统计方法 Active CN104933101B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510285629.XA CN104933101B (zh) 2015-05-29 2015-05-29 一种基于svn的配置审计信息自动统计方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510285629.XA CN104933101B (zh) 2015-05-29 2015-05-29 一种基于svn的配置审计信息自动统计方法

Publications (2)

Publication Number Publication Date
CN104933101A CN104933101A (zh) 2015-09-23
CN104933101B true CN104933101B (zh) 2018-05-29

Family

ID=54120269

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510285629.XA Active CN104933101B (zh) 2015-05-29 2015-05-29 一种基于svn的配置审计信息自动统计方法

Country Status (1)

Country Link
CN (1) CN104933101B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106648789A (zh) * 2016-12-28 2017-05-10 北京奇虎科技有限公司 一种文件处理方法和装置
CN109271756B (zh) * 2017-07-14 2022-12-20 迈普通信技术股份有限公司 权限控制方法、装置及服务器
CN108446135A (zh) * 2018-03-13 2018-08-24 中国银行股份有限公司 一种代码行数统计方法及装置
CN109829330A (zh) * 2018-12-28 2019-05-31 恒生电子股份有限公司 一种svn权限设置方法、装置、系统、电子设备
CN109753289B (zh) * 2019-01-14 2023-02-03 网易(杭州)网络有限公司 一种美术资源合并方法、装置、电子设备和存储介质
CN111930958B (zh) * 2020-07-13 2023-12-01 车智互联(北京)科技有限公司 一种图数据库构建方法、计算设备及可读存储介质
CN111857806A (zh) * 2020-07-29 2020-10-30 北京达佳互联信息技术有限公司 权限配置文件更新方法、装置、电子设备及存储介质
CN112053132B (zh) * 2020-09-07 2024-05-28 中国工商银行股份有限公司 主机变更方法及装置
CN114553961A (zh) * 2022-01-06 2022-05-27 厦门游动网络科技有限公司 一种自动刷新全球cdn的方法、系统、装置和介质
CN117708094B (zh) * 2023-12-26 2024-07-23 行吟信息科技(武汉)有限公司 数据处理方法、装置、电子设备和存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101557316A (zh) * 2009-05-14 2009-10-14 阿里巴巴集团控股有限公司 一种更新统计数据的方法和系统
CN101739466A (zh) * 2010-01-18 2010-06-16 北京红旗贰仟软件技术有限公司 文件管理方法和装置
CN102332026A (zh) * 2011-10-10 2012-01-25 深圳中兴网信科技有限公司 一种业务数据库查询统计方法
CN102508835A (zh) * 2011-09-22 2012-06-20 用友软件股份有限公司 基于日志管理包的增量数据实时同步装置和方法
CN104320469A (zh) * 2014-10-29 2015-01-28 北京思特奇信息技术股份有限公司 一种基于svn的增量变化数据分析下载方法及系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070244906A1 (en) * 2006-04-14 2007-10-18 Aptana Incorporated Collaborative Content Generation System And Method

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101557316A (zh) * 2009-05-14 2009-10-14 阿里巴巴集团控股有限公司 一种更新统计数据的方法和系统
CN101739466A (zh) * 2010-01-18 2010-06-16 北京红旗贰仟软件技术有限公司 文件管理方法和装置
CN102508835A (zh) * 2011-09-22 2012-06-20 用友软件股份有限公司 基于日志管理包的增量数据实时同步装置和方法
CN102332026A (zh) * 2011-10-10 2012-01-25 深圳中兴网信科技有限公司 一种业务数据库查询统计方法
CN104320469A (zh) * 2014-10-29 2015-01-28 北京思特奇信息技术股份有限公司 一种基于svn的增量变化数据分析下载方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于日志分析的增量数据捕获方法研究;彭远浩 等;《计算机工程》;20150120;第41卷(第6期);第56-60、65页 *

Also Published As

Publication number Publication date
CN104933101A (zh) 2015-09-23

Similar Documents

Publication Publication Date Title
CN104933101B (zh) 一种基于svn的配置审计信息自动统计方法
US11755628B2 (en) Data relationships storage platform
US8973128B2 (en) Search result presentation
EP1347394B1 (en) Schema-oriented content management system
US8918447B2 (en) Methods, apparatus, systems and computer readable mediums for use in sharing information between entities
US20110004622A1 (en) Method and apparatus for gathering and organizing information pertaining to an entity
US20070299880A1 (en) Document Management Server, Document Management Method, Computer Readable Medium, Computer Data Signal, and System For Managing Document Use
US20120290544A1 (en) Data compliance management
CN113190501A (zh) 水利水电工程质量验评电子文件形成及归档方法
Altman et al. Digital preservation through archival collaboration: The data preservation alliance for the social sciences
Serbout et al. From openapi fragments to api pattern primitives and design smells
CN109636303B (zh) 一种半自动提取和结构化文档信息的存储方法及系统
CA2873819C (en) Systems and methods for authenticating and aiding in indexing of and searching for electronic files
Levine et al. DEX: Digital evidence provenance supporting reproducibility and comparison
Raghavan A framework for identifying associations in digital evidence using metadata
JP2001167086A (ja) 文書のデジタル署名付き管理方法および文書管理装置
CN113641523B (zh) 一种日志处理方法及装置
CN109542890A (zh) 数据修改方法、装置、计算机设备及存储介质
Ataei et al. Should Variation Be Encoded Explicitly in Databases?
JP5887236B2 (ja) 業務文書処理装置、業務文書処理方法及び業務文書処理プログラム
CN111881100A (zh) 知识库管理框架系统及管理方法、设备及存储介质
JP2008176387A (ja) 文書管理サーバ及びプログラム
Wiedeman Describing Web Archives: A Computer-Assisted Approach
Křenek et al. gLite Job Provenance—a job‐centric view
Schönig PostgreSQL Administration Essentials

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant