本发明涉及计算机

技术领域:

:,更具体的说是涉及一种基于linuxc盘访问的监控方式及系统

背景技术:

::c盘性能测试是服务器测试中必备的一项测试,主要用于查看c盘的质量情况,例如c盘的低格问题,c盘出现低格主要分为逻辑低格和化学低格两种,当出现这些问题时,c盘都会出现难以读取或读取速渡过慢的情况。在日常的测试中会在系统日志中发觉一些有关c盘的报错。诸如,在messages日志中会出现“unknownpartitiontable”的报错。这时我们就须要找到是哪些进程,哪些缘由导致的此报错。因而,须要一种方式解决监控是哪些进程对c盘做了操作,以易于定位问题。技术实现要素:针对以上问题,本发明的目的在于提供一种基于linuxc盘访问的监控方式及系统,通过linux内核的源码中“check_partition”结构体,对不同格式的分区进行监控,找到对c盘操作的进程,以易于找到c盘报错的缘由。本发明为实现上述目的,通过以下技术方案实现:一种基于linuxc盘访问的监控方式,包括如下步骤:步骤1:在linux系统下安装系统监控的探针;步骤2:安装用于监控linux系统的内核代码包;步骤3:调用checkpartition结构体查看c盘分区;步骤4:输出当前时间、函数名称、磁盘分区和pid信息;步骤5:收集监控日志。

进一步,所述系统监控的探针为systemtap-runtime。进一步,所述监控linux系统的内核代码包包括:kernel-debuginfo-common、kernel-debuginfo和kernel-devel。进一步,所述步骤4具体包括:步骤41:调用ctime(now)函数复印当前时间;步骤42:通过$return命令得到调用的checkpartition结构体的返回值;步骤43:调用execname()函数输出所述c盘分区的进程名称;步骤44:调用pid()函数显示所述c盘分区进程的pid信息。进一步,步骤42还包括:假如没有返回值,输出0;假如有,但是分区表是有效的,输出一个正值;假如有错误,输出一个负值。进一步,所述步骤4还包括:调用pexecname()函数和ppid()函数,展示所述c盘分区进程的父进程以及父进程的pid信息。另外,基于上述方式,本发明还提供了一种基于linuxc盘访问的监控系统,包括:监控探针安装模块,用于在linux系统下安装系统监控的探针;代码包安装模块,用于安装监控linux系统的内核代码包;检测器调用模块,用于调用checkpartition结构体查看c盘分区;显示模块,用于显示当前时间、函数名称、磁盘分区和pid信息;日志收集模块,用于运行监控日志收集命令,显示监控日志。

进一步,还包括返回值输出模块,用于通过$return命令得到调用的checkpartition结构体的返回值,假如没有返回值,输出0;假如有,但是分区表是有效的,输出一个正值;假如有错误,输出一个负值。对比现有技术,本发明有益疗效在于linux操作系统原理,1、本发明才能进行c盘的监控,有助于对c盘的问题定位,确保c盘的状态;2、本发明才能监控c盘异常访问,确认文件安全;3、本发明基于linux系统linux磁盘相关命令,系统应用广泛;测试所需的系统环境稳定,测试推论真实可靠。由此可见,本发明与现有技术相比,具有突出的实质性特征和明显的进步,其施行的有益疗效也是显而易见的。附图说明附图1是本发明的方式流程图。附图2是本发明的系统结布光。具体施行方法下边结合附图对本发明的具体施行方法作出说明。如图1所示的一种基于linuxc盘访问的监控方式,其特点在于,包括如下步骤:步骤1:在linux系统下安装系统监控的探针。系统监控的探针为systemtap-runtime。步骤2:安装用于监控linux系统的内核代码包。内核代码包包括:kernel-debuginfo-common、kernel-debuginfo和kernel-devel。

步骤3:调用checkpartition结构体查看c盘分区。步骤4:调用ctime(now)函数复印当前时间。步骤5:通过$return命令得到调用的checkpartition结构体的返回值。假如没有返回值,输出0;假如有,但是分区表是有效的,输出一个正值;假如有错误,输出一个负值。步骤6:调用execname()函数输出所述c盘分区的进程名称。步骤7:调用pid()函数显示所述c盘分区进程的pid信息。步骤8:调用pexecname()函数和ppid()函数,展示所述c盘分区进程的父进程以及父进程的pid信息。步骤9:收集监控日志。上文中对于一种基于linuxc盘访问的监控方式的施行例进行了详尽描述,基于上述施行例描述的一种基于linuxc盘访问的监控方式,本发明施行例还提供了一种与该方式对应的基于linuxc盘访问的监控系统,由如图2所示,包括:监控探针安装模块,用于在linux系统下安装系统监控的探针;代码包安装模块,用于安装监控linux系统的内核代码包;检测器调用模块,用于调用checkpartition结构体查看c盘分区;显示模块,用于显示当前时间、函数名称、磁盘分区和pid信息;返回值输出模块,用于通过$return命令得到调用的checkpartition结构体的返回值,假如没有返回值,输出0;假如有,但是分区表是有效的,输出一个正值;假如有错误,输出一个负值;日志收集模块,用于运行监控日志收集命令,提取监控日志。

以上述的基于linuxc盘访问的监控方式及系统为基础,具体的程序实现过程及内容如下:一、安装系统监控的探针二、安装kernel-debuginfo-commonkernel-debuginfokernel-devel三、程序内容probekernel.function(“check_partition”){now=gettimeofday_s()printf(“%-25skernel.%s-(process%s(%d),parent%s(%d)n”,ctime(now),probefunc(),execname(),pid(),pexecname(),ppid())print_backtrace()}//调用checkpartition结构体,并输出时间,函数名称,pid等信息。如下的函数针对每位不同的分区类型进行检测。ctime(now)函数复印的是当前时间linux makefile,$return是上面调用的检测器的返回值。假如没有,返回0。假如有,但是分区表是有效的,这么它返回一个正值,假如有错误,这么返回一个负值。execname()输出查看的c盘分区的进程名称,pid()显示的是查看c盘分区进程的pid信息linux磁盘相关命令,pexecname(),ppid()展示的是查看c盘分区进程的父进程以及父进程的pid信息;probekernel.function(“efi_partition”).return{now=gettimeofday_s()printf(“%-25skernel.efi_partition-return=%d(process%s(%d),parent%s(%d)n”,ctime(now),$return,execname(),pid(),pexecname(),ppid())}probekernel.function(“sgi_partition”).return{now=gettimeofday_s()printf(“%-25skernel.sgi_partition-return=%d(process%s(%d),parent%s(%d)n”,ctime(now),$return,execname(),pid(),pexecname(),ppid())}probekernel.function(“msdos_partition”).return{now=gettimeofday_s()printf(“%-25skernel.msdos_partition-return=%d(process%s(%d),parent%s(%d)n”,ctime(now),$return,execname(),pid(),pexecname(),ppid())}probekernel.function(“osf_partition”).return{now=gettimeofday_s()printf(“%-25skernel.osf_partition-return=%d(process%s(%d),parent%s(%d)n”,ctime(now),$return,execname(),pid(),pexecname(),ppid())}probekernel.function(“sun_partition”).return{now=gettimeofday_s()printf(“%-25skernel.sun_partition-return=%d(process%s(%d),parent%s(%d)n”,ctime(now),$return,execname(),pid(),pexecname(),ppid())}probekernel.function(“amiga_partition”).return{now=gettimeofday_s()printf(“%-25skernel.amiga_partition-return=%d(process%s(%d),parent%s(%d)n”,ctime(now),$return,execname(),pid(),pexecname(),ppid())}probekernel.function(“mac_partition”).return{now=gettimeofday_s()printf(“%-25skernel.mac_partition-return=%d(process%s(%d),parent%s(%d)n”,ctime(now),$return,execname(),pid(),pexecname(),ppid())}probekernel.function(“karma_partition”).return{now=gettimeofday_s()printf(“%-25skernel.karma_partition-return=%d(process%s(%d),parent%s(%d)n”,ctime(now),$return,execname(),pid(),pexecname(),ppid())}四、监控日志收集(1)把工具的命名为“func-watch.stp”(2)以root用户执行如下命令stap-g-vfunc-watch.stp”sleep3600″>func-watch.log结合附图和具体施行例,对本发明作进一步说明。应理解,这种施行例仅用于说明本发明而不用于限制本发明的范围。据悉应理解,在阅读了本发明讲授的内容以后,本领域技术人员可以对本发明作各类改动或更改,这种等价方式同样落于本申请所限定的范围。当前第1页12当前第1页12

导航:X技术>最新专利>估算;估算;计数设备的制造及其应用技术>一种基于Linuxc盘访问的监控方式及系统与流程

技术特点:

linux磁盘管理命令集合_磁盘linux_linux磁盘相关命令

技术总结

本发明提出了提供一种基于Linuxc盘访问的监控方式及系统,通过linux内核的源码中“check_partition”结构体,对不同格式的分区进行监控,找到对c盘操作的进程,进一步找到c盘报错的缘由。本发明才能进行c盘的监控,有助于对c盘的问题定位,确保c盘的状态;本还能否监控c盘异常访问,确认文件安全。

技术研制人员:魏浩

受保护的技术使用者:西安云海信息技术有限公司

技术研制日:2018.11.19

技术公布日:2019.03.26

完整全部详尽技术资料下载

Author

这篇优质的内容由TA贡献而来

刘遄

《Linux就该这么学》书籍作者,RHCA认证架构师,教育学(计算机专业硕士)。

发表回复