当前位置: 首页 > 后端技术 > Java

Java获取Linux硬盘存储空间信息

时间:2023-04-01 13:21:48 Java

通过解析df命令的内容,可以得到如下信息:[root@localhost~]#dfFilesystem1K-blocksUsedAvailableUse%Mountedondevtmpfs163248120163248120%/devtmpfs163422480163422480%/dev/shmtmpfs1624247247runtmpfs163422480163422480%/sys/fs/fs/cgroup/dev/sda345115153620174467222641985648%//dev/sda199932016986476064419%/boott/boott/boottsinimotboott/bootts322indiment322indymant322yymanty32inymnyy32yanyy32yanyyyy32332483248323326..数据;导入lombok.extern.slf4j.Slf4j;导入org.apache.commons.io.IOUtils;导入java.io.File;导入java.io.IOException;导入java.io.InputStream;导入java.nio.charset。StandardCharsets;importjava.util.ArrayList;importjava.util.List;@Slf4jpublicclassDiskUtils{@DatapublicstaticclassDf{privateStringfilesystem;私有字符串块;/**used*/privatelongused;/**剩余可用*/私人长期可用;/**已使用率,0-100的整数值*/privateintuseRate;/**挂载目录,'/'表示挂载在根目录*/privateStringmountedOn;}publicstaticDfdf(Stringdir){switch(OS.platform()){caseWINDOWS:Dfdf=newDf();df.setAvailable(Long.MAX_VALUE);返回df;}处理过程;尝试{log.debug("df"+dir);process=Runtime.getRuntime().exec("df"+dir);InputStreaminputStream=process.getInputStream();//文件系统1K-blocksUsedAvailableUse%Mountedon///dev/sdc581418609658141697120100%/home/spy-sd/sdcListlines=IOUtils.readLines(inputStream,StandardCharsets.UTF_8);List标题=getTitles(lines.get(0));String[]values=lines.get(1).split("\\s+");dfdf=新的Df();for(inti=0;igetTitles(StringtitlesLine){Listtitles=newArrayList<>();字符串[]titleArray=titlesLine.split("\\s+");for(Stringtitle:titleArray){if(title.equalsIgnoreCase("on")){if(!titles.isEmpty()){intlastIdx=titles.size()-1;titles.set(lastIdx,titles.get(lastIdx)+"On");}}else{titles.add(title);}}返回标题;}publicstaticvoidmain(String[]args){Dfdf=df(newFile("/home/spy-sd/sdc").getAbsolutePath());log.debug("df={}",df);}}Df数据显示示例:DiskUtils.Df(filesystem=/dev/sdc,blocks=5814186096,used=1652962708,available=3868180876,useRate=30,mountedOn=/home/spy-sd/sdc)

最新推荐
猜你喜欢