本发明涉及数据统计,特别是涉及一种基于linux的可交互的磁盘空间统计的方法及系统。
背景技术:
1、在linux系统中,磁盘空间的合理利用和排查是关键任务之一。为了查看文件和目录占用的磁盘空间,以及排查空间占用过高的问题,常规的方法只能看到例如某一个文件夹占用空间过高的情况,但是如果这个文件夹下有n个子文件夹、并且子文件下也有n的子文件且文件数量很大时,如果我们想知道到底是哪些文件过大时,这些常规的方法就无法实现,此时,一种基于linux的可交互的能根据用户指定的条件来查看磁盘空间文件占用大小的方法就显得尤为重要。
技术实现思路
1、本发明目的是针对背景技术中存在的问题,提出一种基于linux的可交互的磁盘空间统计的方法及系统用于查看磁盘空间文件占用大小,且能根据用户指定条件来过滤文件。
2、本发明的技术方案,一种基于linux的可交互的磁盘空间统计系统,包括用户交互界面、消息处理器和中央控制器:
3、用户通过用户界面与系统进行人机交互输入需要查询的文件夹的目录名称;
4、消息处理器用于对收到的消息进行任务标记并发送至中央控制器;
5、中央控制器包括汇聚模块、统计模块、文件写入模块和异常处理模块;
6、汇聚模块执行文件的汇聚和过滤功能;
7、汇聚模块执行成功后会通知统计模块;统计模块将每一层目录的文件夹分别标记为一个单独的任务;
8、异常处理模块用于记录汇聚模块和统计模块运行过程中任务失败后的错误详情;
9、文件写入模块用于将汇聚与统计成功的结果写入excel,并保存在服务器的指定目录中;用户可通过用户界面读取excel的内容查看磁盘空间占用详情。
10、优选的,统计模块标记的任务均由单独的线程来处理,每个线程之间互不干扰。
11、一种基于linux的可交互的磁盘空间统计方法,包括以下具体步骤:
12、s1、用户在交互界面输入需要查询的文件夹目录名称;
13、s2、交互界面提示用户输入需要查询的文件夹层级;
14、s3、交互界面会提示用户输入需要过滤的文件大小并绑定标记;
15、s4、消息处理器将成功绑定的标记发送给中央控制器;中央控制器在收到消息处理器的请求后,会将请求标记切割为三份,记为a、b、c;
16、切割完成后,中央控制器会将切割好的a、b发送给汇聚模块;
17、s5、汇聚模块在接收到中央控制器的请求后,根据a、b来执行文件的汇聚与过滤功能,执行成功后会通知中央控制器;如果执行失败,汇聚模块会通知异常处理模块记录错误详情;
18、s6、中央控制器在接收到汇聚模块执行成功的响应后,会将标记c通知给统计模块;
19、s7、统计模块在接收到中央控制器的请求后,会率先将一层目录的文件夹分别打上标记;统计模块会将每个一层目录文件夹分别标记为一个单独的任务,记为task_c1、task_c2、......task_cn每个任务的初始状态都为未完成,每个任务都由单独的线程来处理,每个线程之间互不干扰;
20、s8、当所有的线程都执行结束、队列中也没有任务在等待时,此时task_c1任务就已完成并通知统计模块,统计模块会将task_c1标记为已完成;
21、s9、当统计模块发现task_c1、task_c2、......task_cn的任务状态都为已完成时,统计模块会通知中央控制器;如果有一个任务的状态为统计失败,则统计模块会通知异常处理模块记录错误详情;
22、s10、中央控制器在接收到统计模块的成功响应后,会将汇聚与统计成功的结果发送给文件写入模块
23、s11、文件写入模块接收到中央控制器的请求后,会将汇聚与统计成功的结果写入excel中,并保存在服务器的指定目录中,方便用户能更直观的查看磁盘空间占用的详情。
24、优选的,用户可根据自己想要的过滤条件依次在交互界面输入需要查询的文件夹目录名称、文件夹层级和过滤的文件的大小。
25、优选的,s11中磁盘占用情况按照从大到小的顺序排列输出至excel中。
26、优选的,统计模块根据一级层级文件夹数量将总任务拆分成与文件夹数量相同的n个子任务,每个子任务均由独立线程处理,每个线程互不干扰。
27、与现有技术相比,本发明具有如下有益的技术效果:
28、1、本发明中用户与系统之间可交互,用户可以随意的根据自己想要的过滤条件来查看磁盘空间占用情况,灵活、便捷;
29、2、本发明中汇总的结果会根据磁盘空间占用情况按照从大到小的顺序排列输出至excel中,能更清晰明了的方便用户查看;
30、3、本发明中统计模块会根据一级层级文件夹数量将总任务拆分成与文件夹数量相同的n个子任务;
31、4、本发明的每个子任务都会有独立的线程来处理,每个线程互不干扰。
1.一种基于linux的可交互的磁盘空间统计系统,其特征在于,包括用户交互界面、消息处理器和中央控制器:
2.根据权利要求1所述的一种基于linux的可交互的磁盘空间统计系统,其特征在于,统计模块标记的任务均由单独的线程来处理,每个线程之间互不干扰。
3.一种基于linux的可交互的磁盘空间统计方法,其特征在于,包括以下具体步骤:
4.根据权利要求3所述的一种基于linux的可交互的磁盘空间统计方法,其特征在于,用户可根据自己想要的过滤条件依次在交互界面输入需要查询的文件夹目录名称、文件夹层级和过滤的文件的大小。
5.根据权利要求3所述的一种基于linux的可交互的磁盘空间统计方法,其特征在于,s11中磁盘占用情况按照从大到小的顺序排列输出至excel中。
6.根据权利要求3所述的一种基于linux的可交互的磁盘空间统计方法,其特征在于,统计模块根据一级层级文件夹数量将总任务拆分成与文件夹数量相同的n个子任务,每个子任务均由独立线程处理,每个线程互不干扰。