读书人

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

发布时间: 2012-11-08 08:48:12 作者: rapoo

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

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

当然了使用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使用之:取得系统内存的数据》中取得

读书人网 >软件架构设计

热点推荐