梵天的读书笔记 2008-01-04
在网络应用中,从最初为用户提供文本数据,发展到现在为用户提供视频数据。网络的内容更丰富了,当然资源所占用的服务器硬盘空间也更大了。经常会出现磁盘满,无法写入数据的情况。为此我们就需要对磁盘进行监控,也就是对文件系统进行监控。
文件系统的指标有:名称、分区类型等基本信息;读写次数等统计信息。
当然了使用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使用之:取得系统内存的数据》中取得