Atitit 查看目录与分区空间占用原理

查看目录空间就是查看所在分区空间的占用

[root@lenovo ~]# df -h /elk

文件系统             容量  已用  可用 已用% 挂载点

/dev/mapper/cl-root   50G   27G   24G   53% /

Java的file   File.listRoots();    貌似列出的当前用户root的主目录所在分区 ,只有几十g空间

[root@lenovo ~]# df -h

文件系统             容量  已用  可用 已用% 挂载点

/dev/mapper/cl-root   50G   27G   24G   54% /

devtmpfs              32G     0   32G    0% /dev

tmpfs                 32G  1.5M   32G    1% /dev/shm

tmpfs                 32G  100M   32G    1% /run

tmpfs                 32G     0   32G    0% /sys/fs/cgroup

/dev/sda1           1014M  174M  841M   18% /boot

/dev/mapper/cl-home  849G  328G  522G   39% /home

package com.attilax.io;

import java.io.File;

import java.util.List;

import java.util.Map;

import javax.swing.filechooser.FileSystemView;

import com.alibaba.fastjson.JSON;

import com.attilax.collection.mapBuilder;

import com.attilax.core.Strutil;

import com.attilax.data.csv.csvService;

import com.attilax.util.cli.SSHHelper;

import com.google.common.collect.Lists;

import com.google.common.collect.Maps;

//com.attilax.io.SpaceCheck

public class SpaceCheck {

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

List li = spaceinfo();

String linux_password = "cloudhealth";

Map m2=mapBuilder.$().put("os","linux").put("host", "192.168.1.18").put("user", "root").put("pwd", linux_password).build();

SSHHelper helper = new SSHHelper(m2.get("host").toString(), 22,m2.get("user").toString(), m2.get("pwd").toString());

li=new SpaceCheck().spaceinfo_linux(helper);

li=Lists.newArrayList();

li.add("192.168.1.18,root,cloudhealth");

li.add("localhost,root,cloudhealth");

System.out.println(JSON.toJSONString(li,true));

}

public   List spaceinfo(String host,String user,String pwd,String os) throws Exception {

if(host.equals("127.0.0.1") || host.equals("localhost"))

{

return spaceinfo();

}

Map m2=mapBuilder.$().put("os","linux").put("host",host).put("user",user).put("pwd", pwd).build();

SSHHelper helper = new SSHHelper(m2.get("host").toString(), 22,m2.get("user").toString(), m2.get("pwd").toString());

return new SpaceCheck().spaceinfo_linux(helper);

}

public   List spaceinfo(String host,String user,String pwd) throws Exception {

if(host.equals("127.0.0.1") || host.equals("localhost"))

{

return spaceinfo();

}

Map m2=mapBuilder.$().put("os","linux").put("host",host).put("user",user).put("pwd", pwd).build();

SSHHelper helper = new SSHHelper(m2.get("host").toString(), 22,m2.get("user").toString(), m2.get("pwd").toString());

return new SpaceCheck().spaceinfo_linux(helper);

}

public   List spaceinfo_linux(String host,String user,String pwd) throws Exception {

//Object pwd;

//Object user;

Map m2=mapBuilder.$().put("os","linux").put("host",host).put("user",user).put("pwd", pwd).build();

SSHHelper helper = new SSHHelper(m2.get("host").toString(), 22,m2.get("user").toString(), m2.get("pwd").toString());

return new SpaceCheck().spaceinfo_linux(helper);

}

public   List spaceinfo_linux(SSHHelper helper) throws Exception {

String cmd="df -h";

String t = helper.getCmdRet(cmd );

List<Map> cmdret=csvService.toTableBySpace_ParseHeader(t);

List li=Lists.newArrayList();

for (Map f : cmdret) {

FileSystemView fsv = FileSystemView.getFileSystemView();

Map m=Maps.newLinkedHashMap();

//  m.put("FileSystemView.getSystemDisplayName_driverValumeName",fsv.getSystemDisplayName(f));

//  m.put("FileSystemView.getSystemTypeDescription",fsv.getSystemTypeDescription(f));

Object fileys = f.get( "文件系统");

if( Strutil.containsAny(fileys.toString(), "tmpfs  overlay  shm"))

continue;

m.put("file_getName", fileys);

m.put("file_getPath", f.get("挂载点"));

m.put("file_getAbsolutePath",f.get("挂载点"));

m.put("file_getFreeSpace",  getSpaceSizeGM_linux( f.get("可用")));

m.put("file_getUsableSpace",getSpaceSizeGM_linux( f.get("可用")));

m.put("file_getTotalSpace",getSpaceSizeGM_linux( f.get("容量")));

m.put( "used_space",getSpaceSizeGM_linux( f.get("已用")));

li.add(m);

}

return li;

}

private Object getSpaceSizeGM_linux(Object object) {

Map m=Maps.newLinkedHashMap();

String s=object.toString();

if(s.equals("0"))

{

m.put("MB",  "0" );

m.put("GB", "0" );

return m;

}

String num_s=(String) object.toString().subSequence(0, s.length()-1);

Double d=Double.parseDouble(num_s);

if(s.endsWith("G"))

{

Double mb=d*1024d;

m.put("MB",  String.format("%.2f", mb)  );

m.put("GB",  String.format("%.2f", d)  );

}

if(s.endsWith("M"))

{

Double gb=d/1024d;

m.put("MB",  String.format("%.2f", d)  );

m.put("GB",  String.format("%.2f", gb)  );

}

if(s.endsWith("K"))

{

Double gb=d/1024/1024d;

Double mb=d/1024d;

m.put("MB",  String.format("%.2f", mb)  );

m.put("GB",  String.format("%.2f", gb)  );

}

if(s.endsWith("0"))

{

Double gb=0d;

m.put("MB",  String.format("%.2f", d)  );

m.put("GB",  String.format("%.2f", gb)  );

}

return m;

}

/**

*

* @return

*/

public static List spaceinfo() {

File[] roots = File.listRoots();

List li=Lists.newArrayList();

for (File f : roots) {

FileSystemView fsv = FileSystemView.getFileSystemView();

Map m=Maps.newLinkedHashMap();

m.put("FileSystemView.getSystemDisplayName_driverValumeName",fsv.getSystemDisplayName(f));

m.put("FileSystemView.getSystemTypeDescription",fsv.getSystemTypeDescription(f));

m.put("file_getName", f.getName());

m.put("file_getPath", f.getPath());

m.put("file_getAbsolutePath", f.getAbsolutePath());

m.put("file_getFreeSpace",  getSpaceSizeGM( f.getFreeSpace()));

m.put("file_getUsableSpace",getSpaceSizeGM( f.getUsableSpace()));

m.put("file_getTotalSpace",getSpaceSizeGM( f.getTotalSpace()));

m.put( "used_space",getSpaceSizeGM(f.getTotalSpace()-f.getFreeSpace())  );

li.add(m);

//     System.out.println(f.getPath());

//System.out.println(file_getName());

//            System.out.println("Free space = " + (f.getFreeSpace()/(1024*1024))/1024+"G");  //显示GB大小

//            System.out.println("Usable space = " +    f.getUsableSpace());

//            System.out.println("Total space = " + f.getTotalSpace());

//            System.out.println("used space  = " + (f.getTotalSpace()-f.getFreeSpace()));

//            System.out.println();

}

return li;

}

private static Object getSpaceSizeGM(long freeSpace) {

Map m=Maps.newLinkedHashMap();

double value = (double) freeSpace/(double)(1024*1024*1024);

m.put("GB",  String.format("%.2f", value)  );

double value2 = (double)freeSpace/(double)(1024*1024);

m.put("MB",  String.format("%.2f", value2) );

return m;

}

}

Atitit 查看目录与分区空间占用原理 查看目录空间就是查看所在分区空间的占用 [root@lenovo ~]# df -h /elk 文件系统 容量 已用 可用相关推荐

  1. oracle linux查看磁盘,fdisk命令_Linux fdisk命令使用详解:查看磁盘使用情况与磁盘分区...

    fdisk命令用于观察硬盘实体使用情况,也可对硬盘分区.它采用传统的问答式界面,而非类似DOS fdisk的cfdisk互动式操作界面,因此在使用上较为不便,但功能却丝毫不打折扣. 语法 fdisk( ...

  2. mysql lsof打开数过多_lsof 查看进程打开的文件情况 df -h 磁盘空间满的异常处理...

    lsof的使用说明 2019/07/01 update chenxin lsof 查看进程打开了哪些文件 / 查看文件被哪个进程使用 lsof -u/-c/-p/^/file_path_and_fil ...

  3. 【查看所有磁盘的空间和所有文件大小】1.df -h 2.du -sh *

    1.查看磁盘空间 [rj@localhost ~]$ df -h 文件系统 容量 已用 可用 已用% 挂载点 /dev/mapper/centos-root 50G 11G 40G 22% / dev ...

  4. 近日学习笔记:df -h和du -sh命令,查看linux版本,vbm管理工具,su命令,ssh服务升级技巧,source命令

    文章目录 df -h和du -sh区别 df -h查看整个系统中文件系统的使用情况 du -sh *查看当前目录下各个文件及目录占用空间大小 查看Linux系统版本的命令: VirtualBox管理工 ...

  5. linux非lvm分区在线扩容,怎么给不是LVM的根分区扩容

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 想给根分区扩容,把 /dev/sdb挂载到/,但系统不是用LVM分区. 尝试过把/dev/sda1的类型改为lvm,但reboot之后系统都进不去. # ...

  6. linux 空间大小不对,df -h和fdisk -l得出的硬盘空间大小不一样

    我用df -h得出的结果 文件系统              容量  已用 可用 已用% 挂载点 /dev/sda3              34G  4.1G   29G  13% / /dev/ ...

  7. cwntos新建目录挂载磁盘_centos6修改挂载磁盘目录的方法

    将挂载在/mydata目录的磁盘/sdb1,修改挂载到/www分区. 1.查看当前磁盘挂载情况: 命令:df -h [root@125-227-249-184 /]# df -h Filesystem ...

  8. oracle先的lvm分配,LVM实战案例之LVM空间缩减(本次对PV,VG,LV等进行空间缩减)

    祥哥之前总结过,对LVM扩容和缩减的顺序.这次在提醒一下 LVM添加顺序:PV---->VG---->LV LVM删除顺序:LV----->VG---->PV 逻辑卷可在线扩展 ...

  9. linux lvm删除分区,Linux LVM中的PV物理卷(硬盘或分区)删除方法

    LVM的全称为Logical Volume Manager,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性.那么该如何对PV物理 ...

  10. Linux通过df -h查看磁盘空间满,但实际占用却没有那么大

    最近项目现场经常反馈说是磁盘满了,但实际占用不却没有那么多,导致无法操作,远程查看后,确实如此,现将相关解决方案记录如下: 查看现有硬盘情况 df -h 2. 再查看实际占用 // 切换到要目录下 c ...

最新文章

  1. python文本分类评价指标 top1如何计算_使用paddlehub自定义任务,具体是自定义文本分类任务中的评价指标时按照官方文档的方法做了之后报错了,请问应该如何解决?...
  2. 查看回滚事物sql_卧槽:这款 SQL自动检查神器,吊炸天的功能,真TMD多!!
  3. 使用Docker-数据卷挂载案例2
  4. [原创]K8_C段旁注工具6.0 新增SMB漏洞扫描
  5. 深度学习笔记(27) 经典卷积网络
  6. MongoDB副本集配置系列六:定位MongoDB慢的原因
  7. 「leetcode」104559:求树的最大深度
  8. Ubuntu下Apache+php+mysql网站架设详解
  9. erdas2015几何校正模块在哪_几何校正和正射校正,怎样用erdas做几何校正?
  10. 在线思维导图制作教程 有哪些制作思维导图的工具?
  11. 2018今日头条内推笔试1
  12. 丁磊一份隔着万水千山的爱情
  13. 量化交易1-backtrader介绍
  14. 鼠标在微信开发工具中消失(而在手机模拟器以外可以显示)
  15. [公告]博客园管理团队新增成员wayfarer
  16. Kafka与MySQL的组合使用
  17. 微信小游戏上线流程及游戏自审自查报告模板
  18. 使用C语言编写一个两个数的加减乘除程序
  19. 计算机英语和普通英语区别表现,浅谈日常英语与计算机专业英语的区别
  20. 鲍尔默飙泪谈离职原因:董事会嫌我速度慢

热门文章

  1. 后台填充_单元格噩梦终于有救?500多行隔行填充,我就两步!
  2. pythonwin下载中文版_Python官方下载 v3.9.0中文版_Win10镜像官网
  3. sh文件在linux下如何运行_RTMP协议安防视频平台EasyDSS在Linux系统下运行报错,如何处理?_...
  4. java jpanel 叠加_java之JFrame、JPanel混合布局-Go语言中文社区
  5. dubbo monitor mysql_dubbo-monitor监控台的部署
  6. TCP长连接(KeepAlive)
  7. 引言:扇贝 2017 服务端技术回顾
  8. Java:装饰设计模式
  9. BlackHat 2015:如何用洗衣机盗取计算机文件
  10. Crystal Report在.net中的两种显示方式