package cn.com.trs.nw.external.data.manager.controller.admin;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStreamReader;
/**
* 磁盘存储监控
*/
@RestController
public class TestDiskMonitorController {
private final Logger logger = LoggerFactory.getLogger(this.getClass());
@ApiOperation(value = "windows磁盘空间监控")
public void windowDiskMonitor() {
File[] roots = File.listRoots();
FileSpace space = new FileSpace();
long totalSpace=0L;
long usableSpace=0L;
for (File file : roots) {
totalSpace += file.getTotalSpace();
usableSpace+=file.getUsableSpace();
}
long useSpace=totalSpace-usableSpace;
space.setTotalSpace(totalSpace/(1024*1024*1024)+"G");
space.setUsableSpace(usableSpace/(1024*1024*1024)+"G");
space.setUseSpace(useSpace/(1024*1024*1024)+"G");
}
public FileSpace linuxDiskMonitor() throws Exception {
FileSpace space = new FileSpace();
Runtime rt = Runtime.getRuntime();
Process p = rt.exec("df -hl /home");//df -hl 查看硬盘空间
BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream()));
String str = null;
String[] strArray = null;
while ((str = in.readLine()) != null) {
if(!str.contains("文件系统")){
strArray = str.split("\\s+");
space.setTotalSpace(strArray[1]);
space.setUseSpace(strArray[2]);
space.setUsableSpace(strArray[3]);
logger.info("总存储空间:"+strArray[1]);
logger.info("已使用空间:"+strArray[2]);
logger.info("剩余空间:"+strArray[3]);
}
}
return space;
}
}