当前位置: 首页 > news >正文

java linux磁盘_java获取linux的磁盘空间,磁盘利用率

package com.hotpot.boos.interaction.ftpUtil.util;

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

import java.io.PrintWriter;

import java.io.StringWriter;

import org.apache.log4j.Logger;

/**

* 采集磁盘IO使用率

*/

public class IoUsage{

private static Logger log = Logger.getLogger(IoUsage.class);

private static IoUsage INSTANCE = new IoUsage();

private IoUsage(){

}

public static IoUsage getInstance(){

return INSTANCE;

}

/**

* @Purpose:采集磁盘IO使用率

* @param args

* @return float,磁盘IO使用率,小于1

* @throws Exception

*/

public float get() throws Exception {

log.info("开始收集磁盘IO使用率");

double totalhd = 0;

double usedhd = 0;

Runtime rt = Runtime.getRuntime();

Process p = rt.exec("df -hl /home");//df -hl 查看硬盘空间

BufferedReader in = null;

try {

in = new BufferedReader(new InputStreamReader(p.getInputStream()));

String str = null;

String[] strArray = null;

while ((str = in.readLine()) != null) {

int m = 0;

strArray = str.split(" ");

for (String tmp : strArray) {

if (tmp.trim().length() == 0)

continue;

++m;

System.out.println("----tmp----" + tmp);

if (tmp.indexOf("G") != -1) {

if (m == 2) {

System.out.println("---G----" + tmp);

if (!tmp.equals("") && !tmp.equals("0"))

totalhd += Double.parseDouble(tmp

.substring(0, tmp.length() - 1)) * 1024;

}

if (m == 3) {

System.out.println("---G----" + tmp);

if (!tmp.equals("none") && !tmp.equals("0"))

usedhd += Double.parseDouble(tmp.substring(

0, tmp.length() - 1)) * 1024;

}

}

if (tmp.indexOf("M") != -1) {

if (m == 2) {

System.out.println("---M---" + tmp);

if (!tmp.equals("") && !tmp.equals("0"))

totalhd += Double.parseDouble(tmp

.substring(0, tmp.length() - 1));

}

if (m == 3) {

System.out.println("---M---" + tmp);

if (!tmp.equals("none") && !tmp.equals("0"))

usedhd += Double.parseDouble(tmp.substring(

0, tmp.length() - 1));

System.out.println("----3----" + usedhd);

}

}

}

}

} catch (Exception e) {

e.printStackTrace();

} finally {

in.close();

}

//上面写在userd和total写反了,懒得改了,就反着用了

System.out.println("----totalhd----" + usedhd);

System.out.println("----usedhd----" + totalhd);

return (float) ((usedhd/totalhd) * 100);

}

/**

* @param args

* @throws InterruptedException

*/

public static void main(String[] args) throws Exception {

while(true){

System.out.println(IoUsage.getInstance().get());

Thread.sleep(5000);

}

}

}

相关文章:

  • eclipse java转maven_关于在eclipse中使用Maven创建项目转换成javaweb步骤
  • uwp连接mysql数据库_[UWP小白日记-11]在UWP中使用Entity Framework Core(Entity Framework 7)操作SQLite数据库(一)...
  • centos apache php mysql zend_Centos6.5+php+apache+mysql+zendguardloader环境安装
  • java =1 ==1_为什么在Java中-1右移1 = -1?
  • java commons-pool_apache commons-pool的配置参数
  • JAVA CP936编码转utf8_Java编码转换 - querychinesesto的个人空间 - OSCHINA - 中文开源技术交流社区...
  • java hssffont_Java HSSFFont.setBoldweight方法代碼示例
  • java怎样创建字符串列表_java第三季lt;6-5gt;:生成随机字符串列表并排序之实现...
  • java多表return语句吗_java – 需要一个return语句吗? – 新编码
  • java网格布局如何为空_Java 网格布局
  • java 反序列化php对象_Java对对象的序列化和反序列化
  • Java如何读写基本数据类型和对象_114.Java操作基本数据类型的流对象
  • java 内部类 调用函数_Java中内部类使用方法实战案例分析
  • java 线程中途返回一个值_Java 实现线程的方式有几种方式?带有返回值的线程怎么实现?...
  • java ssh框架 session工厂如何配置连接orcale_【学习笔记】linux操作SSH互信的配置方法 ssh等效连接配置案例...
  • gitlab-ci配置详解(一)
  • iOS 颜色设置看我就够了
  • MaxCompute访问TableStore(OTS) 数据
  • Netty 4.1 源代码学习:线程模型
  • Vue.js-Day01
  • vuex 笔记整理
  • yii2中session跨域名的问题
  • 创建一个Struts2项目maven 方式
  • 从零到一:用Phaser.js写意地开发小游戏(Chapter 3 - 加载游戏资源)
  • 近期前端发展计划
  • 如何进阶一名有竞争力的程序员?
  • 通过几道题目学习二叉搜索树
  • 正则学习笔记
  • puppet连载22:define用法
  • TPG领衔财团投资轻奢珠宝品牌APM Monaco
  • ​HTTP与HTTPS:网络通信的安全卫士
  • #define与typedef区别
  • (1)(1.11) SiK Radio v2(一)
  • (10)STL算法之搜索(二) 二分查找
  • (android 地图实战开发)3 在地图上显示当前位置和自定义银行位置
  • (C#)Windows Shell 外壳编程系列4 - 上下文菜单(iContextMenu)(二)嵌入菜单和执行命令...
  • (LNMP) How To Install Linux, nginx, MySQL, PHP
  • (附源码)springboot优课在线教学系统 毕业设计 081251
  • (离散数学)逻辑连接词
  • (原創) 如何安裝Linux版本的Quartus II? (SOC) (Quartus II) (Linux) (RedHat) (VirtualBox)
  • (转)C#开发微信门户及应用(1)--开始使用微信接口
  • .net 前台table如何加一列下拉框_如何用Word编辑参考文献
  • .NET面试题解析(11)-SQL语言基础及数据库基本原理
  • .Net中wcf服务生成及调用
  • .NET中使用Protobuffer 实现序列化和反序列化
  • .Net转前端开发-启航篇,如何定制博客园主题
  • @RequestBody的使用
  • [ CTF ]【天格】战队WriteUp- 2022年第三届“网鼎杯”网络安全大赛(青龙组)
  • [ 常用工具篇 ] AntSword 蚁剑安装及使用详解
  • [20161214]如何确定dbid.txt
  • [AI]文心一言爆火的同时,ChatGPT带来了这么多的开源项目你了解吗
  • [ai笔记9] openAI Sora技术文档引用文献汇总
  • [BZOJ5125]小Q的书架(决策单调性+分治DP+树状数组)
  • [C++]打开新世界的大门之C++入门
  • [CareerCup] 13.1 Print Last K Lines 打印最后K行