2017-03-14 93 views
0

我正在嘗試編寫一個程序,通過它我可以獲取我們的服務器之一的磁盤空間利用率詳細信息。 程序會從服務器A執行,並會嘗試獲取服務器B. 的磁盤空間利用率我試圖用java的文件系統庫,但給了我目前唯一的服務器的詳細信息通過Java獲取另一個服務器的磁盤空間詳細信息

誰能幫助我在這裏

+0

所以你想知道服務器上有多少空間? – SkrewEverything

+0

是@SkrewEverything。我想知道在服務器B的var/vcap/store下留下了多少空間 –

回答

0

要知道目錄的大小,我們可以使用du -sh path_to_directory命令來獲取目錄的大小。

您可以使用ProcessBuilder執行該命令。

代碼:

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

    Process p = new ProcessBuilder().command("bash","-c","du -s /var/vcap/store").start(); 
    p.waitFor(); 
    BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream())); 
    String s; 
    while((s = br.readLine()) != null) 
    { 
     System.out.println(s); 
    } 

} 

輸出:

16G /var/vcap/store 

以上16G意味着store需要16G的文件夾。

我希望它有幫助。

+0

這會給我當前運行java文件的服務器。我希望我的代碼在其他服務器'B'上運行時獲取另一個服務器'A'的磁盤細節 –

+0

@RachitMGarg那麼你期望什麼?沒有其他「神奇」的方式從''你的機器''獲得''其他機器''的詳細信息,而無需在其他機器上運行程序''。你可以在''other machine「上運行這個程序,並將輸出保存到一個文件中,並從你的機器發送一個HTTP請求到另一臺機器來獲取數據。你必須運行命令'du'來獲取信息。只需編寫一個bash腳本來運行該命令併發送來自''你的機器''的HTTP請求來接收信息。 – SkrewEverything