发明内容
针对现有技术存在的问题,本发明实施例提供一种确定国产操作系统中的软件使用频率的方法及装置。
本发明实施例提供一种确定国产操作系统中的软件使用频率的方法,包括:
定时启动第一线程遍历进程目录,根据所述进程目录中的可执行程序文件信息,获取可执行程序对应的软件标识和最近启动时间,并存储所述软件标识和与其对应的最近启动时间至指定文件中;
定时启动第二线程遍历当前软件列表,在所述指定文件中查找与所述当前软件列表中的软件对应的软件标识,根据所述软件对应的软件标识,确定与所述软件对应的最近启动时间,并根据当前时间和所述最近启动时间,确定所述软件的软件使用频率。
其中,所述根据所述进程目录中的可执行程序文件信息,获取可执行程序对应的软件标识和最近启动时间,包括:
根据所述可执行程序文件信息,获取可执行程序文件路径和最近启动时间;
调用软件包管理命令从所述可执行程序文件路径中获取所述软件标识。
其中,所述Linux系统包括debian系统或redhat系统;相应的,所述调用软件包管理命令从所述可执行程序文件路径中获取所述软件标识,包括:
调用与所述debian系统或所述redhat系统分别对应的软件包管理命令从所述可执行程序文件路径中获取所述软件标识。
其中,与所述debian系统或所述redhat系统分别对应的软件包管理命令为dpkg–Sbin或rpm–qf bin。
其中,所述定时启动第一线程遍历进程目录,包括:
定时启动第一线程遍历/proc目录下的所有进程目录。
其中,所述根据当前时间和所述最近启动时间,确定所述软件的软件使用频率,包括:
将所述当前时间与所述最近启动时间的差值确定为所述软件使用频率。
本发明实施例提供一种确定国产操作系统中的软件使用频率的装置,包括:
存储单元,用于定时启动第一线程遍历进程目录,根据所述进程目录中的可执行程序文件信息,获取可执行程序对应的软件标识和最近启动时间,并存储所述软件标识和与其对应的最近启动时间至指定文件中;
确定单元,用于定时启动第二线程遍历当前软件列表,在所述指定文件中查找与所述当前软件列表中的软件对应的软件标识,根据所述软件对应的软件标识,确定与所述软件对应的最近启动时间,并根据当前时间和所述最近启动时间,确定所述软件的软件使用频率。
本发明实施例提供一种电子设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,
所述处理器执行所述程序时实现如下方法步骤:
定时启动第一线程遍历进程目录,根据所述进程目录中的可执行程序文件信息,获取可执行程序对应的软件标识和最近启动时间,并存储所述软件标识和与其对应的最近启动时间至指定文件中;
定时启动第二线程遍历当前软件列表,在所述指定文件中查找与所述当前软件列表中的软件对应的软件标识,根据所述软件对应的软件标识,确定与所述软件对应的最近启动时间,并根据当前时间和所述最近启动时间,确定所述软件的软件使用频率。
本发明实施例提供一种非暂态计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如下方法步骤:
定时启动第一线程遍历进程目录,根据所述进程目录中的可执行程序文件信息,获取可执行程序对应的软件标识和最近启动时间,并存储所述软件标识和与其对应的最近启动时间至指定文件中;
定时启动第二线程遍历当前软件列表,在所述指定文件中查找与所述当前软件列表中的软件对应的软件标识,根据所述软件对应的软件标识,确定与所述软件对应的最近启动时间,并根据当前时间和所述最近启动时间,确定所述软件的软件使用频率。
本发明实施例提供一种计算机程序产品,所述计算机程序产品包括计算机可执行指令,所述计算机可执行指令在被执行时实现如下方法步骤:
定时启动第一线程遍历进程目录,根据所述进程目录中的可执行程序文件信息,获取可执行程序对应的软件标识和最近启动时间,并存储所述软件标识和与其对应的最近启动时间至指定文件中;
定时启动第二线程遍历当前软件列表,在所述指定文件中查找与所述当前软件列表中的软件对应的软件标识,根据所述软件对应的软件标识,确定与所述软件对应的最近启动时间,并根据当前时间和所述最近启动时间,确定所述软件的软件使用频率。
本发明实施例提供的确定国产操作系统中的软件使用频率的方法及装置,通过第一线程定时存储软件标识和与其对应的最近启动时间至指定文件中、通过第二线程定时确定软件的软件使用频率,并通过调整第一线程和第二线程的定时时长,能够及时、可控地监测操作人员使用软件的软件使用频率。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明确定国产操作系统中的软件使用频率的方法实施例流程图,如图1所示,本发明实施例提供的一种确定国产操作系统中的软件使用频率的方法,包括以下步骤:
S101:定时启动第一线程遍历进程目录,根据所述进程目录中的可执行程序文件信息,获取可执行程序对应的软件标识和最近启动时间,并存储所述软件标识和与其对应的最近启动时间至指定文件中。
具体的,定时启动第一线程遍历进程目录,根据所述进程目录中的可执行程序文件信息,获取可执行程序对应的软件标识和最近启动时间,并存储所述软件标识和与其对应的最近启动时间至指定文件中。执行该方法步骤的可以是计算机设备,具体可以是终端。定时启动第一线程的时长可以根据实际情况自主设置,可以定时启动第一线程遍历所有进程目录。最近启动时间可以理解为最近一次启动时间。图2为本发明另一实施例确定国产操作系统中的软件使用频率的方法流程图,如图2所示,第一线程对应图2中的“软件使用频率查询”对应的线程,进程目录可以是存储在Linux系统中使用软件的进程目录。可执行程序文件可以是后缀名为.exe的文件。可执行程序文件信息可以是可执行程序文件所在的文件夹中的所有文件信息。软件标识可以是软件名称,例如可执行程序a对应的软件名称为A、最近启动时间为2019年11月1日,指定文件可以为software_usetime.ini,可以将上述软件名称A和2019年11月1日存储在software_usetime.ini中,进一步可以将上述软件名称A和2019年11月1日缓存在software_usetime.ini中。根据所述进程目录中的可执行程序文件信息,获取可执行程序对应的软件标识和最近启动时间,可以进一步包括:
根据所述可执行程序文件信息,获取可执行程序文件路径(对应图2中bin文件路径)和最近启动时间;可以从stat下的记录获取最近启动时间。
调用软件包管理命令从所述可执行程序文件路径中获取所述软件标识。
例如:可以通过如下命令:
rpm-qi包名
选项:
-i查询软件信息,获取到软件信息,进而可以获取软件标识,即软件名称。
由于stat可用于统计某个文件的修改接入时间,某个文件可以包括软件,因此,可以从stat下的记录获取软件的最近启动时间。
软件包管理命令可以是Linux系统软件包管理命令,Linux系统可以包括debian系统或redhat系统,分别说明如下:
debian计划是一个致力于创建一个自由操作系统的合作组织,所创建的这个操作系统名为debian。该操作系统是使计算机运行的基本程序和工具的集合,其中最主要的部分称为内核(kernel)。内核是计算机中最重要的程序,负责一切基本的调度工作,运行其他程序。Linux系统的发行版本可以大体分为两类:一类是商业公司维护的发行版本;另一类是社区组织维护的发行版本,前者以红帽(redhat)为代表,后者以debian为代表。
所述调用软件包管理命令从所述可执行程序文件路径中获取所述软件标识,可以进一步包括:
调用与所述debian系统或所述redhat系统分别对应的软件包管理命令从所述可执行程序文件路径中获取所述软件标识。与所述debian系统或所述redhat系统分别对应的软件包管理命令为dpkg–S bin或rpm–qf bin,即对于debian系统,可以通过调用dpkg–Sbin从所述可执行程序文件路径中获取所述软件标识;对于redhat系统,可以通过调用rpm–qf bin从所述可执行程序文件路径中获取所述软件标识。
dpkg是debian package的简写,为debian操作系统专门开发的套件管理系统,用于软件的安装、更新和卸载。所有源自debian的Linux的发行版都使用dpkg。dpkg–S bin是搜索指定包bin中的文件。
rpm全名是Red Hat Package Manager,本意是Red Hat软件包管理,顾名思义是Red Hat贡献出来的软件包管理;在Fedora、Redhat、Mandriva、SuSE、YellowDog等主流发行版本,以及在这些版本基础上进行二次开发出来的发行版。rpm–qf bin是查看一个系统文件bin属于哪一个包。
所述定时启动第一线程遍历进程目录,可以进一步包括:定时启动第一线程遍历/proc目录下的所有进程目录。/proc文件系统是一种内核和内核模块用来向进程(process)发送信息的机制。
S102:定时启动第二线程遍历当前软件列表,在所述指定文件中查找与所述当前软件列表中的软件对应的软件标识,根据所述软件对应的软件标识,确定与所述软件对应的最近启动时间,并根据当前时间和所述最近启动时间,确定所述软件的软件使用频率。
具体的,定时启动第二线程遍历当前软件列表,在所述指定文件中查找与所述当前软件列表中的软件对应的软件标识,根据所述软件对应的软件标识,确定与所述软件对应的最近启动时间,并根据当前时间和所述最近启动时间,确定所述软件的软件使用频率。定时启动第二线程的时长也可根据实际情况自主设置,可以定时启动第二线程遍历当前软件列表中的所有软件,参照图2,第二线程对应图2中的“软件信息查询”对应的线程,可以理解的是,本发明实施例中的第一线程和第二线程是并行异步执行的,通过调整定时启动第一线程的时长,可以控制可执行程序的最近启动时间的监视频率,即如果存在与工作相关的、且需要频繁使用的软件,可以减小定时启动第一线程的时长,从而满足工作需要;如果存在与工作相关的、但不需要频繁使用的软件,可以增大定时启动第一线程的时长,从而减少系统的运算量,节约系统资源。
通过调整定时启动第二线程的时长,可以控制软件使用频率的监视频率;软件使用频率的监视频率可以与最近启动时间的监视频率呈成比例变化,从而保证统一协调地利用系统资源,即如果减小定时启动第一线程的时长,也可以减少定时启动第二线程的时长;即如果增大定时启动第一线程的时长,也可以增大定时启动第二线程的时长。进一步地,增大或减小的定时启动第二线程的时长幅度值也可以与定时启动第一线程的时长幅度值作同步变化。
该当前软件列表可以表示真实安装的软件信息,即实际安装了哪些软件。可以理解的是,在指定文件中可以存储软件和软件标识之间的映射关系,即软件1对应软件名称A、软件2对应软件名称B等,以当前软件列表中的软件1为例,可以确定该软件对应的软件名称为软件名称A,参照上述举例,软件名称A对应的最近启动时间为2019年11月1日,如果当前时间为2019年11月6日,则可以将所述当前时间与所述最近启动时间的差值确定为所述软件使用频率,即该软件的软件使用频率为5天,需要说明的是,软件使用频率可以采用其他频率粒度表示,例如上述5天对应的频率粒度可以为一周内,还可以计算更细的时间粒度,例如可以将当前时间和最近启动时间的时间单位选为小时、分钟或秒等;相应的,软件使用频率粒度也更细。
本发明实施例提供的确定国产操作系统中的软件使用频率的方法,通过第一线程定时存储软件标识和与其对应的最近启动时间至指定文件中、通过第二线程定时确定软件的软件使用频率,并通过调整第一线程和第二线程的定时时长,能够及时、可控地监测操作人员使用软件的软件使用频率。
在上述实施例的基础上,所述根据所述进程目录中的可执行程序文件信息,获取可执行程序对应的软件标识和最近启动时间,包括:
具体的,根据所述可执行程序文件信息,获取可执行程序文件路径和最近启动时间。可参照上述说明,不再赘述。
具体的,调用软件包管理命令从所述可执行程序文件路径中获取所述软件标识。可参照上述说明,不再赘述。
本发明实施例提供的确定国产操作系统中的软件使用频率的方法,进一步能够高效获取到软件标识和最近启动时间,进而保证及时、可控地监测操作人员使用软件的软件使用频率。
在上述实施例的基础上,所述Linux系统包括debian系统或redhat系统;相应的,所述调用软件包管理命令从所述可执行程序文件路径中获取所述软件标识,包括:
具体的,调用与所述debian系统或所述redhat系统分别对应的软件包管理命令从所述可执行程序文件路径中获取所述软件标识。可参照上述说明,不再赘述。
本发明实施例提供的确定国产操作系统中的软件使用频率的方法,能够保证该技术方案针对不同类型的Linux系统的通用性。
在上述实施例的基础上,具体的,与所述debian系统或所述redhat系统分别对应的软件包管理命令为dpkg–S bin或rpm–qf bin。可参照上述说明,不再赘述。
本发明实施例提供的确定国产操作系统中的软件使用频率的方法,通过执行具体的软件包管理命令,进一步保证针对不同类型的Linux系统能够高效获取到软件标识,进而保证及时、可控地监测操作人员使用软件的软件使用频率。
在上述实施例的基础上,所述定时启动第一线程遍历进程目录,包括:
具体的,定时启动第一线程遍历/proc目录下的所有进程目录。可参照上述说明,不再赘述。
本发明实施例提供的确定国产操作系统中的软件使用频率的方法,能够简单高效地实现遍历所有进程目录,优化了该技术方案的运行效率。
在上述实施例的基础上,所述根据当前时间和所述最近启动时间,确定所述软件的软件使用频率,包括:
具体的,将所述当前时间与所述最近启动时间的差值确定为所述软件使用频率。可参照上述说明,不再赘述。
本发明实施例提供的确定国产操作系统中的软件使用频率的方法,能够简单有效地确定软件使用频率,节约系统资源。
图3为本发明确定国产操作系统中的软件使用频率的装置实施例结构示意图,如图3所示,本发明实施例提供了一种确定国产操作系统中的软件使用频率的装置,包括存储单元301和确定单元302,其中:
存储单元301用于定时启动第一线程遍历进程目录,根据所述进程目录中的可执行程序文件信息,获取可执行程序对应的软件标识和最近启动时间,并存储所述软件标识和与其对应的最近启动时间至指定文件中;确定单元302用于定时启动第二线程遍历当前软件列表,在所述指定文件中查找与所述当前软件列表中的软件对应的软件标识,根据所述软件对应的软件标识,确定与所述软件对应的最近启动时间,并根据当前时间和所述最近启动时间,确定所述软件的软件使用频率。
具体的,存储单元301用于定时启动第一线程遍历进程目录,根据所述进程目录中的可执行程序文件信息,获取可执行程序对应的软件标识和最近启动时间,并存储所述软件标识和与其对应的最近启动时间至指定文件中;确定单元302用于定时启动第二线程遍历当前软件列表,在所述指定文件中查找与所述当前软件列表中的软件对应的软件标识,根据所述软件对应的软件标识,确定与所述软件对应的最近启动时间,并根据当前时间和所述最近启动时间,确定所述软件的软件使用频率。
本发明实施例提供的确定国产操作系统中的软件使用频率的装置,通过第一线程定时存储软件标识和与其对应的最近启动时间至指定文件中、通过第二线程定时确定软件的软件使用频率,并通过调整第一线程和第二线程的定时时长,能够及时、可控地监测操作人员使用软件的软件使用频率。
在上述实施例的基础上,所述存储单元301具体用于:根据所述可执行程序文件信息,获取可执行程序文件路径和最近启动时间;调用软件包管理命令从所述可执行程序文件路径中获取所述软件标识。
本发明实施例提供的确定国产操作系统中的软件使用频率的装置,进一步能够高效获取到软件标识和最近启动时间,进而保证及时、可控地监测操作人员使用软件的软件使用频率。
在上述实施例的基础上,所述Linux系统包括debian系统或redhat系统;相应的,所述存储单元301具体用于:调用与所述debian系统或所述redhat系统分别对应的软件包管理命令从所述可执行程序文件路径中获取所述软件标识。
本发明实施例提供的确定国产操作系统中的软件使用频率的装置,能够保证该技术方案针对不同类型的Linux系统的通用性。
在上述实施例的基础上,与所述debian系统或所述redhat系统分别对应的软件包管理命令为dpkg–S bin或rpm–qf bin。
本发明实施例提供的确定国产操作系统中的软件使用频率的装置,通过执行具体的软件包管理命令,进一步保证针对不同类型的Linux系统能够高效获取到软件标识,进而保证及时、可控地监测操作人员使用软件的软件使用频率。
在上述实施例的基础上,所述存储单元301具体用于:定时启动第一线程遍历/proc目录下的所有进程目录。
本发明实施例提供的确定国产操作系统中的软件使用频率的装置,能够简单高效地实现遍历所有进程目录,优化了该技术方案的运行效率。
在上述实施例的基础上,所述确定单元302具体用于:将所述当前时间与所述最近启动时间的差值确定为所述软件使用频率。
本发明实施例提供的确定国产操作系统中的软件使用频率的装置,能够简单有效地确定软件使用频率,节约系统资源。
本发明实施例提供的确定国产操作系统中的软件使用频率的装置具体可以用于执行上述各方法实施例的处理流程,其功能在此不再赘述,可以参照上述方法实施例的详细描述。
图4为本发明实施例提供的电子设备实体结构示意图,如图4所示,所述电子设备包括:处理器(processor)401、存储器(memory)402和总线403;
其中,所述处理器401、存储器402通过总线403完成相互间的通信;
所述处理器401用于调用所述存储器402中的程序指令,以执行上述各方法实施例所提供的方法,例如包括:定时启动第一线程遍历进程目录,根据所述进程目录中的可执行程序文件信息,获取可执行程序对应的软件标识和最近启动时间,并存储所述软件标识和与其对应的最近启动时间至指定文件中;定时启动第二线程遍历当前软件列表,在所述指定文件中查找与所述当前软件列表中的软件对应的软件标识,根据所述软件对应的软件标识,确定与所述软件对应的最近启动时间,并根据当前时间和所述最近启动时间,确定所述软件的软件使用频率。
本实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:定时启动第一线程遍历进程目录,根据所述进程目录中的可执行程序文件信息,获取可执行程序对应的软件标识和最近启动时间,并存储所述软件标识和与其对应的最近启动时间至指定文件中;定时启动第二线程遍历当前软件列表,在所述指定文件中查找与所述当前软件列表中的软件对应的软件标识,根据所述软件对应的软件标识,确定与所述软件对应的最近启动时间,并根据当前时间和所述最近启动时间,确定所述软件的软件使用频率。
本实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述各方法实施例所提供的方法,例如包括:定时启动第一线程遍历进程目录,根据所述进程目录中的可执行程序文件信息,获取可执行程序对应的软件标识和最近启动时间,并存储所述软件标识和与其对应的最近启动时间至指定文件中;定时启动第二线程遍历当前软件列表,在所述指定文件中查找与所述当前软件列表中的软件对应的软件标识,根据所述软件对应的软件标识,确定与所述软件对应的最近启动时间,并根据当前时间和所述最近启动时间,确定所述软件的软件使用频率。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。