`
bayaci
  • 浏览: 264929 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

获取Linux/Unix文件系统信息

 
阅读更多

设计一套SAP监控系统

http://blog.csdn.net/bayaci/archive/2009/10/13/4666456.aspx

显示系统df(linux )/ bdf (hpunix)的信息


执行代码,获取诸如bdf /usr命令后的信息:
DiskInfo diskInfo = new DiskInfo();
diskInfo.info(directory);
long used = diskInfo.getUsed();
long free = diskInfo.getAvailable();
long kbyte = diskInfo.getKbyte();






代码如下:
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.StringTokenizer;


public class DiskInfo {

/** OS line separator. */
static final String NL = System.getProperty( "line.separator" );

private static long getLong( String value ) throws NumberFormatException {
try {
return Long.parseLong( value );
}
catch( NumberFormatException nfe ) {
throw new NumberFormatException( "On value "+value+": "+nfe.getMessage() );
}
}


private String fileSystem ;
private String mounted ;
private long used = 0L;
private long kbyte = 0L;
private long available = 0L;

public void info(String directory ) throws IOException {

InputStream stream = null;
// Connection connection = null; // Database Connection Object




// to handle standard outputs
final byte[] buf = new byte[1024];
String[] strings;
int i;
int size;


// note OS name
final String osName = System.getProperty( "os.name" );

// System.out.println( "system is " + osName);


if( "Linux".equals( osName ) ) {
final Process p = Runtime.getRuntime().exec( "df " + directory );
stream = p.getInputStream();
final int count = stream.read( buf, 0, buf.length );

String delim = NL;

final StringTokenizer st = new StringTokenizer( new String( buf, 0, count ), delim,
true );

int lineNum = 1;
int field = 0;

while( st.hasMoreTokens() ) {
final String token = st.nextToken(delim);
//System.out.println( "token is " + token);
if( lineNum if( NL.equals( token ) ) {
lineNum++;
if( lineNum == 2 ) {
delim = " " + NL;
}
}
}// else
if( !" ".equals( token ) ) {
field++;
if( field == 0 ) {
setFileSystem ( token );
} else
if( field == 2 ) {
setUsed ( getLong( token ));
} else
if( field == 3 ) {
setAvailable( getLong( token ));
}
}
}
}
else
if( "HP-UX".equals( osName ) ) {
final Process p = Runtime.getRuntime().exec( "bdf " + directory );
stream = p.getInputStream();
final int count = stream.read( buf, 0, buf.length );

String delim = NL;

final StringTokenizer st = new StringTokenizer( new String( buf, 0, count ), delim,
true );

int lineNum = 1;
int field = 0;

while( st.hasMoreTokens() ) {
final String token = st.nextToken(delim);
if( lineNum if( NL.equals( token ) ) {
lineNum++;
if( lineNum == 2 ) {
delim = " " + NL;
}
}
} else
if( !" ".equals( token ) ) {
field++;



if( field == 0 ) {
setFileSystem ( token );
} else
if( field == 3 ) {
setUsed ( getLong( token ));
} else
if( field == 4 ) {
setAvailable( getLong( token ));
}
}
}
} else {
throw new RuntimeException( "Unknown OS name: " + osName + " to implement..." );
}

setKbyte ( getUsed() + getAvailable());
setMounted(directory );


}

private void setUsed(long used) {
this.used = used;
}

public long getUsed() {
return used;
}

private void setKbyte(long kbyte) {
this.kbyte = kbyte;
}

public long getKbyte() {
return kbyte;
}

private void setAvailable(long available) {
this.available = available;
}

public long getAvailable() {
return available;
}

private void setFileSystem(String fileSystem) {
this.fileSystem = fileSystem;
}

public String getFileSystem() {
return fileSystem;
}

private void setMounted(String mounted) {
this.mounted = mounted;
}

public String getMounted() {
return mounted;
}





}



分享到:
评论

相关推荐

    Cacti for Linux/Unix(网络流量监测图形分析工具) v1.2.4.zip

    Cacti for Linux/Unix安装方法 在文件夹include下的config.php中可配置你的数据库信息。 $database_type = "mysql"; //数据库类型 $database_default = "cacti"; //数据库名称 $database_hostname = "localhost...

    Unix/linux系统的安全性概述

    Unix/linux系统的安全性概述 对于网站管理人员而言,日常性的服务器安全保护主要包括四方面内容: 文件存取合法性:任何黑客的入侵行为的手段和目的都可以认为是非法存取文件,这些文件包括重要数据信息、主页页面 ...

    Linux和Unix系统的关系和区别介绍

    Linux和Unix系统的关系和区别介绍

    Python.Unix和Linux系统管理指南

    通过《Python UNIX和Linux系统管理指南》,读者可以学习如何用Python开发自己的一套命令行工具来解决诸多问题。 作者建立了一个免费下载的Ubuntu虚拟机,其中包含《Python UNIX和Linux系统管理指南》的源代码和运行...

    《Python UNIX 和Linux 系统管理指南》[PDF]

    本书介绍了python语言如何为管理unix和linux服务器提供各种更加有效的任务处理方式。书中各章都提出了具体的管理问题,如并发或数据备份,然后通过python示例提供了解决方案。通过本书,读者可以学习如何用python...

    python unix linux 系统管理指南

    python unix linux 系统管理指南 本书介绍了python语言如何为管理unix和linux服务器提供各种更加有效的任务处理方式。书中各章都提出了具体的管理问题,如并发或数据备份,然后通过python示例提供了解决方案。通过...

    LINUX操作系统(电子教案,参考答案)

    本书适合用于大专院校、电脑培训班等作为Linux或UNIX操作系统课程的教材,也可作为电脑爱好者、相关技术人员或准备参加Linux认证的读者的参考书。 本书写作过程中受到广东省自然科学基金和中山大学青年启动基金的...

    PYTHON UNIX和LINUX系统管理指南

    通过《Python UNIX和Linux系统管理指南》,你可以发现Python在如下几个方面的作用:, 读取文本文件并提取信息。, 使用多线程和fork选项。, 使用网络设备从一个进程获取另一个进程的信息。, 创建可点击的、易于交互的...

    Python在UNIX和Linux系统管理指南 中文版

    ·读取文本文件并提取信息。 ·使用多线程和fork选项。 ·使用网络设备从一个进程获取另一个进程的信息。 ·创建可点击的、易于交互的GUI工具。 ·通过交互式SNMP编程实现监控大型主机集群。 ·掌握IPython shell,...

    UNIX/Linux系统取证之信息采集案例

    在UNIX/Linux系统取证中,及时收集硬盘的信息至关重要,《Unix/Linux网络日志分析与流量监控》一书中,将详细讨论各种常见系统进程系统调用及镜像文件获取方法。下面简单举几个例子。在UNIX/Linux取证时很多系统和...

    本科毕业论文 Linux下文件管理与文件传送的研究与实现

    3 Linux虚拟文件系统 10 3.1 虚拟文件系统概述 10 3.2 VFS支持的文件系统可以划分为三种类型: 10 3.3 VFS功能 11 4 界面的实现 12 4.1发送端界面的实现 12 4.2 接收端的界面实现 13 4.3 锚接部件界面的实现 14 4.4 ...

    LINUX系统管理白皮书

    第9章 网络信息系统 88 9.1 NIS概述 89 9.2 NIS与NIS+之比较 90 9.3 NIS的客户端 90 9.4 NIS服务器的运行 91 9.5 用NYS设置一个NIS客户机 91 9.6 挑选合适的映射 93 9.7 使用passwd和group映射 94 9.8 NIS与...

    linux全志R16的linux系统编译的资料_20170502_1655.7z

    全志R16平台编译linux系统V1.0.txt 2017/4/11 13:36 (编译请使用编译android的lichee的选项编译生成的.config文件,不然直接编译会报错!!!!) rootroot@cm-System-Product-Name:/home/wwt/linux_r16$ tar...

    linux 0.11 内核源码 - 免费下载

    linux 0.11 源码下载 本代码是目前能够找到的最早的Linux的内核版本,Linux 0.11内核是Linux内核的早期版本,于1991年由Linus Torvalds编写并发布。...它是获取Unix/Linux内核设计经验和智慧的重要途径。

    nacos-server-1.1.0.tar.gz

    Linux/Unix/Mac 启动命令(standalone代表着单机模式运行,非集群模式): sh startup.sh -m standalone Windows 启动命令: cmd startup.cmd 或者双击startup.cmd运行文件。 4.服务注册&发现和配置管理 服务注册 ...

    Linux系统设计-Java编写的用于多线程获取腾讯云Linux系统磁盘分区状态的小工具,可以生成Excel或者HTML文件

    Linux系统是一个免费使用和自由传播的类Unix操作系统,基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统,Linux是许多企业...

    Java获取Java所在的根目录.rar

    Java获取Java所在的根目录,可以在Windows和LINUX两个平台中使用,都可以得到JAVA所在的路径,程序使用JComboBox组合框组件来存放获得的根目录信息,如在Linux 和Unix 系统下组合框只有一项即“/”,截图是Windows...

Global site tag (gtag.js) - Google Analytics