Sigar使用之:取得平台文件系统的数据

本文介绍了一种使用Sigar库监控文件系统的方法,包括获取磁盘基本信息及读写统计数据,并通过实例演示了如何收集并输出这些数据。

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

在网络应用中,从最初为用户提供文本数据,发展到现在为用户提供视频数据。网络的内容更丰富了,当然资源所占用的服务器硬盘空间也更大了。经常会出现磁盘满,无法写入数据的情况。为此我们就需要对磁盘进行监控,也就是对文件系统进行监控。

文件系统的指标有:名称、分区类型等基本信息;读写次数等统计信息。

当然了使用sigar也可以获得分件系统的这些数据。

下面通过例子说明:

package lab.sigar;

import java.util.ArrayList;
import java.util.List;

import org.hyperic.sigar.FileSystem;
import org.hyperic.sigar.FileSystemUsage;
import org.hyperic.sigar.Sigar;
import org.hyperic.sigar.SigarException;

import com.thoughtworks.xstream.XStream;

/**
* 文件系统数据
*
* 使用Sigar获得文件系统信息
*
* @author wangrui
*
*/
public class FileSystemData {

private FileSystem config;
private FileSystemUsage stat;

public FileSystemData() {}

public void populate(Sigar sigar, FileSystem fs)
throws SigarException {

config = fs;

try {
stat = sigar.getFileSystemUsage(fs.getDirName());
} catch (SigarException e) {

}
}

public static FileSystemData gather(Sigar sigar, FileSystem fs)
throws SigarException {

FileSystemData data = new FileSystemData();
data.populate(sigar, fs);
return data;
}

public FileSystem getConfig() {
return config;
}

public FileSystemUsage getStat() {
return stat;
}

public static void main(String[] args) throws Exception {
Sigar sigar = new Sigar();
FileSystem[] fsArr = sigar.getFileSystemList();
List fsList = new ArrayList();
for ( FileSystem fs:fsArr ) {
FileSystemData fsData = FileSystemData.gather(sigar, fs);
fsList.add(fsData);
}
XStream xstream = new XStream();
xstream.alias("FileSystemDatas", List.class);
xstream.alias("FileSystemData", FileSystemData.class);
System.out.println(xstream.toXML(fsList));
}
}


用到的jar包可以在《Sigar使用之:取得系统内存的数据》中取得

[url=http://www.51.la/?1613417][img]http://img.users.51.la/1613417.asp[/img][/url]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值