在网络应用中,从最初为用户提供文本数据,发展到现在为用户提供视频数据。网络的内容更丰富了,当然资源所占用的服务器硬盘空间也更大了。经常会出现磁盘满,无法写入数据的情况。为此我们就需要对磁盘进行监控,也就是对文件系统进行监控。
文件系统的指标有:名称、分区类型等基本信息;读写次数等统计信息。
当然了使用sigar也可以获得分件系统的这些数据。
1.package lab.sigar;
2.
3.import java.util.ArrayList;
4.import java.util.List;
5.
6.import org.hyperic.sigar.FileSystem;
7.import org.hyperic.sigar.FileSystemUsage;
8.import org.hyperic.sigar.Sigar;
9.import org.hyperic.sigar.SigarException;
10.
11.import com.thoughtworks.xstream.XStream;
12.
13./**
14. * 文件系统数据
15. *
16. * 使用Sigar获得文件系统信息
17. *
18. * @author wangrui
19. *
20. */
21.public class FileSystemData {
22.
23. private FileSystem config;
24. private FileSystemUsage stat;
25.
26. public FileSystemData() {}
27.
28. public void populate(Sigar sigar, FileSystem fs)
29. throws SigarException {
30.
31. config = fs;
32.
33. try {
34. stat = sigar.getFileSystemUsage(fs.getDirName());
35. } catch (SigarException e) {
36.
37. }
38. }
39.
40. public static FileSystemData gather(Sigar sigar, FileSystem fs)
41. throws SigarException {
42.
43. FileSystemData data = new FileSystemData();
44. data.populate(sigar, fs);
45. return data;
46. }
47.
48. public FileSystem getConfig() {
49. return config;
50. }
51.
52. public FileSystemUsage getStat() {
53. return stat;
54. }
55.
56. public static void main(String[] args) throws Exception {
57. Sigar sigar = new Sigar();
58. FileSystem[] fsArr = sigar.getFileSystemList();
59. List fsList = new ArrayList();
60. for ( FileSystem fs:fsArr ) {
61. FileSystemData fsData = FileSystemData.gather(sigar, fs);
62. fsList.add(fsData);
63. }
64. XStream xstream = new XStream();
65. xstream.alias("FileSystemDatas", List.class);
66. xstream.alias("FileSystemData", FileSystemData.class);
67. System.out.println(xstream.toXML(fsList));
68. }
69.}