如何記錄資料夾的最大大小?

如何記錄資料夾的最大大小?

包在測試系統上解壓縮並編譯/tmp/test

我需要取得目錄在任意時刻的最大大小在所有這些步驟中。

目前,我透過記錄尺寸來幫助自己

du -sch /tmp/test >> /tmp/size.txt 

循環中。但這是一個非常骯髒的解決方法並且不精確。可能是計算機非常繁忙/tmp/testdu錯過了峰值大小。有優雅的解決方案嗎?

可用的檔案系統是 ext 或 btrfs(如果有幫助的話)。

一位讀者要求用法範例

  • 在為 Gentoo Linux 準備軟體包時,我需要知道編譯過程中需要多少空間。對於某些軟體套件(如 Firefox、Boost 或 LibreOffice),軟體包驗證是否有足夠的可用空間非常重要。

  • 我編寫了創建許多臨時文件的腳本。監視資料夾大小會很有趣。

更新:同時,我發現sysdig這對於這項任務來說看起來很有希望,但我還沒有得到資料夾大小。

答案1

一種可能是監視檔案系統事件並在檔案建立和檔案刪除時運行一些日誌記錄命令。有一些工具可能會促進這種方法,例如inotify,FSWATCH, 或者Linux審計框架。您可以嘗試在每個事件發生後記錄總磁碟空間,也可以只記錄磁碟空間的變化,然後使用日誌來計算最大大小。例如,請參閱以下超級用戶貼文:

以下帖子提供了一種不同的方法:

建議將有問題的目錄安裝在自己的分割區上,然後執行iostat在那個分區上。這應該允許您連續將 IO 事件記錄到該目錄。

有關監控磁碟 IO 的進一步討論,您可以參考以下文章:

答案2

每 1 分鐘安排一個腳本

*/1 *. *. *. * script path

腳本應該如下

#!/bin/bash
du -sch /tmp/|sed -n '1p' >>outputfile

一段時間後,對其進行排序並獲得最大的尺寸。

相關內容