linux 监控硬盘读写,干货|监控硬盘读写

本文介绍了如何在Linux系统中监控硬盘的读写情况,包括使用inotify机制实时监控文件和目录变化,以及通过/proc文件系统分析进程的读写统计。通过示例代码和测试验证,展示了监控硬盘读写和进程文件操作的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

点击上方“中兴开发者社区”,关注我们

每天读一篇一线开发者原创好文0818b9ca8b590ca3270a3433284dd417.png

监控硬盘读写

系统运行过程中,一些进程会向硬盘中写入大量的数据,如果写入的数据量不做控制,总有一天硬盘会被写满,导致一些奇奇怪怪的问题。

为了避免硬盘被写满,就需要监控硬盘的使用情况,例如需要感知到系统中写入了哪些文件,文件的大小有多少,最好能够跟踪到进程,查看进程打开的文件,并监控此进程读写硬盘的字节数。

系统级文件操作监控

Linux操作系统提供了inotify机制,通过这种机制,我们可以实时监控指定文件/目录发生了什么变化,关于inofiy的原理可以参考文档【https://www.ibm.com/developerworks/cn/linux/l-inotifynew/index.html】。

inotify可以监控任意文件/目录,可以监控到文件的写入读取事件、目录内创建文件等,需要注意的是在监控目录时,只能监控到该目录下的操作,无法监控到子目录里面的操作。

inotify应用代码

inotify应用源码参考 http://man7.org/tlpi/code/online/dist/inotify/demo_inotify.c.html :

#include

#include

#include

#include

#include/* Prototypes for many system calls */

staticvoid/* Display information from inotify_event structure */

displayInotifyEvent(structinotify_event*i)

{

printf("    wd =%2d; ",i->wd);

if(i->cookie>0)

printf("cookie =%4d; ",i->cookie);

printf("mask = ");

if(i->mask&IN_ACCESS)printf("IN_ACCESS ");

if(i->mask&IN_ATTRIB)printf("IN_ATTRIB 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值