本发明涉及软件维护技术领域,具体涉及一种jenkins软件的维护方法、存储介质、电子设备及系统。
背景技术:
jenkins软件是一个用于自动构建、测试、打包及安装包分发软件,是目前最流行的持续集成工具之一,在当今软件开发领域有着非常广泛的使用。在jenkins当中每个构建/测试/打包任务对应了一个job,job是一种软件的配置描述文件的集合。每个job在运行时会从自己的配置文件中读取源代码配置并下载相关源代码到相应的workspace文件夹,也就是每个job对应了一个workspace文件夹。所有job信息都是以文件夹的形式存放在job文件夹下,其job文件夹名为job名;所有job的源代码都存放在workspace文件夹下,且workspace文件夹名也以job名命名。
当一个job失效之后,开发人员会手动将job删掉,但是相应的workspace文件夹并不会自动删除,而是继续存在于jenkins部署的服务器上,如果job更新频率很高且源代码文件占用磁盘空间很大,将会造成服务器硬盘空间不足使服务不可用。
目前业界解决此问题的方法是专门的维护人员定期连接服务器进行管理,手动将失效的job对应的workspace文件夹删除。由于是人工处理,此工作需要专人定期进行,且需要人工辨认哪些job是废弃掉的,其对应的workspace文件夹可以删除,哪些是不能删的,比较耗时效率低且存在出错的风险。
技术实现要素:
针对现有技术中存在的缺陷,本发明解决的技术问题为:如何实现自动将失效的job对应的workspace文件夹删除。
为达到以上目的,本发明采取的技术方案是:一种jenkins软件的维护方法,其用于jenkins软件中job文件夹和workspace文件夹的管理,所述job文件夹和workspace文件夹一一对应且workspace文件夹名与其对应的job文件夹名均以job名命名:
扫描全部job文件夹和全部workspace文件夹,形成job文件夹名集合和workspace文件夹名集合;
判断workspace文件夹集合中每个workspace文件夹名在job文件夹集合是否均有对应的job文件夹名;提取无对应job文件夹名的workspace文件夹名中的job名组成失效job名集合;
使用失效job名查找其对应的workspace文件夹的路径,删除失效job名对应的workspace文件夹。
在上述技术方案的基础上,使用ls命令获取job文件夹的文件夹信息,使用grep命令从job文件夹的文件夹信息中提取job文件夹名。
在上述技术方案的基础上,使用echo命令将失效job名写进系统日志。
在上述技术方案的基础上,使用rm命令删除失效job名对应的workspace文件夹。
本发明实施例还公开了一种存储介质,该存储介质上存储有计算机程序:所述计算机程序被处理器执行时实现所述的jenkins软件的维护方法。
本发明实施例还公开了一种电子设备,包括存储器和处理器,存储器上储存有在处理器上运行的计算机程序:处理器执行计算机程序时实现所述的jenkins软件的维护方法。
本发明实施例还公开了一种jenkins软件的维护系统,其用于jenkins软件中job文件夹和workspace文件夹的管理,所述job文件夹和workspace文件夹一一对应且workspace文件夹名与其对应的job文件夹名均以job名命名,包括:
文件夹名获取模块,其用于扫描全部job文件夹和全部workspace文件夹,形成job文件夹名集合和workspace文件夹名集合;
失效文件夹名获取模块,其用于判断workspace文件夹集合中每个workspace文件夹名在job文件夹集合是否均有对应的job文件夹名;提取无对应job文件夹名的workspace文件夹名中的job名组成失效job名集合;
workspace文件夹删除模块,其用于使用失效job名查找其对应的workspace文件夹的路径,删除失效job名对应的workspace文件夹。
在上述技术方案的基础上,所述文件夹名获取模块使用ls命令获取job文件夹的文件夹信息,使用grep命令从job文件夹的文件夹信息中提取job文件夹名。
在上述技术方案的基础上,所述workspace文件夹删除模块使用echo命令将失效job名写进系统日志。
在上述技术方案的基础上,所述workspace文件夹删除模块使用rm命令删除失效job名对应的workspace文件夹。
与现有技术相比,本发明的优点在于:
本发明获取job文件夹名集合及workspace文件夹名集合;判断workspace文件夹集合中每个workspace文件夹名在job文件夹集合是否均有对应的job文件夹名;提取无对应job文件夹名的workspace文件夹名中的job名组成失效job名集合;使用失效job名查找其对应的workspace文件夹的路径,删除失效job名对应的workspace文件夹,从而实现自动将失效的job对应的workspace文件夹删除。
附图说明
图1为本发明实施例中jenkins软件的维护方法的流程示意图;
图2为本发明实施例中电子设备的连接框图。
具体实施方式
以下结合附图及实施例对本发明作进一步详细说明。
参见图1所示,本发明实施例提供一种jenkins软件的维护方法,其用于jenkins软件中job文件夹和workspace文件夹的管理,所述job文件夹和workspace文件夹一一对应且workspace文件夹名与其对应的job文件夹名均以job名命名:
s1,扫描全部job文件夹和全部workspace文件夹,形成job文件夹名集合和workspace文件夹名集合。
a.扫描jobs目录jobs_dir,jobs目录下有多个job文件夹,所有job信息都是以文件夹的形式存放在job文件夹下,每个job对应一个文件夹,文件夹名即为job名称。
使用ls命令(ls为linuxshell命令,用于获取指定路径下的文件或文件夹信息),通过–f参数会将输出结果中的文件夹名后面自动加上斜杠“/”符号;
使用grep命令(grep为linuxshell命令,用于对输入进行过滤并输出),对步骤i中的结果进行筛选,有斜杠“/”符号的即为job文件夹名,将步骤ii的结果存放在一个数组jobs_array里。整体命令为ls-fjobs_dir|grep"/$"。
b.扫描workspace目录workspaces_dir。如前所述,所有job的源代码都存放在workspace目录下的以job名命名的workspace文件夹里,实施步骤与a)类似,最后读取workspace文件夹名存放在一个数组workspaces_array里。整体命令为ls-fworkspaces_dir|grep"/$"。
s2,判断workspace文件夹集合中每个workspace文件夹名在job文件夹集合是否均有对应的job文件夹名;提取无对应job文件夹名的workspace文件夹名中的job名组成失效job名集合。
进行差异比对,扫描workspace_array数组,读取workspace_array元素name_i,判断name_i是否也在jobs_array中,若否则将name_i添加到tobe_delete_array数组中后继续扫描workspace_array数组。如果在则说明其对应的job有效,应该保留;如果不在则说明其对应的job已失效,应该删除,创建tobe_delete_array数组用来存放已失效的jobs名。
s3,使用失效job名查找其对应的workspace文件夹的路径,删除失效job名对应的workspace文件夹,结束。
具体包括以下过程:
a.使用echo命令(echo为linuxshell命令,用于打印、显示或输出文本信息)将job名写进系统日志;
b.拼接workspace目录路径与job名得到要删除了workspace文件夹路径;
c.使用rm命令(grep为linuxshell命令,用于删除指定文件或文件夹)删除失效了的workspace文件夹。
本发明实施例获取job文件夹名集合及workspace文件夹名集合;判断workspace文件夹集合中每个workspace文件夹名在job文件夹集合是否均有对应的job文件夹名;提取无对应job文件夹名的workspace文件夹名中的job名组成失效job名集合;使用失效job名查找其对应的workspace文件夹的路径,删除失效job名对应的workspace文件夹,从而实现自动将失效的job对应的workspace文件夹删除。
本发明实施例还公开了一种存储介质,该存储介质上存储有计算机程序:所述计算机程序被处理器执行时实现jenkins软件的维护方法。需要说明的是,所述存储介质包括u盘、移动硬盘、rom(read-onlymemory,只读存储器)、ram(randomaccessmemory,随机存取存储器)、磁碟或者光盘等各种可以存储程序代码的介质。
参见图2所示,本发明实施例还公开了一种电子设备,包括存储器和处理器,存储器上储存有在处理器上运行的计算机程序:处理器执行计算机程序时实现jenkins软件的维护方法。
本发明实施例还公开了一种jenkins软件的维护系统,其用于jenkins软件中job文件夹和workspace文件夹的管理,所述job文件夹和workspace文件夹一一对应且workspace文件夹名与其对应的job文件夹名均以job名命名,包括:
文件夹名获取模块,其用于扫描全部job文件夹和全部workspace文件夹,形成job文件夹名集合和workspace文件夹名集合;
失效文件夹名获取模块,其用于判断workspace文件夹集合中每个workspace文件夹名在job文件夹集合是否均有对应的job文件夹名;提取无对应job文件夹名的workspace文件夹名中的job名组成失效job名集合;
workspace文件夹删除模块,其用于使用失效job名查找其对应的workspace文件夹的路径,删除失效job名对应的workspace文件夹。
所述文件夹名获取模块使用ls命令获取job文件夹的文件夹信息,使用grep命令从job文件夹的文件夹信息中提取job文件夹名。
所述workspace文件夹删除模块使用echo命令将失效job名写进系统日志。
所述workspace文件夹删除模块使用rm命令删除失效job名对应的workspace文件夹。
需要说明的是:本发明实施例提供的系统在进行模块间通信时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将系统的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
本发明不局限于上述实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围之内。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。