现在的位置: 首页 > 综合 > 正文

java实现根据Linux上的mount的网络路径取到Linux上的mount的本地地址

2019年07月16日 ⁄ 综合 ⁄ 共 793字 ⁄ 字号 评论关闭

使用java实现通过Linux上的网络地址得到其mount点:

public String getLocalPath(String mountPath) {
		
		log.debug("需要mount的网络路径:" + mountPath);
		//shell命令脚本
		String shell = "mount | grep " + mountPath;
		log.debug("shell命令脚本:" + shell);
		String[] cmd = {"sh", "-c", shell};
		BufferedReader input = null;
		String[] temp = null;
		try {
			Process process = Runtime.getRuntime().exec(cmd);
			input = new BufferedReader(new InputStreamReader(process.getInputStream()));
			log.debug("得到的输入流对象:" + input);
            String line = "";  
            while ((line = input.readLine()) != null) {
            	log.debug("得到的输入流信息是:" + line);
            	temp = line.split("\\s+");
            	if(temp[0].equals(mountPath)){
            		break;
            	}else{
            		temp = null;
            	}
            }
		} catch (IOException e) {
			log.error("执行shell脚本异常",e);
		}finally{
			if(input != null){
				try {
					input.close();
				} catch (IOException e) {
					log.error("流关闭异常",e);
				}
			}
		} 
		if(temp == null){
			log.debug("没有找到" + mountPath + "的路径mount路径");
			return null;
		}else{
			return temp[2];
		}
	}

抱歉!评论已关闭.