
希望這個問題不是太籠統。
由於我有一個虛擬伺服器(Ubuntu 12.04),我無法使用配額來限制目錄的大小。我想知道是否還有其他可能性來實現這一目標。
我能想到的唯一方法是 inotify + 設定檔的組合,其中規定了最大大小 + 命令,這使得檔案為空或刪除它或類似的東西。它不是限制使用者目錄,而是限制自動寫入的文件,例如日誌檔案。
我知道這不是最好的方法,但我認為這是唯一可行的方法。你有更好的嗎?
答案1
這並不能真正很好地擴展到大量配額,但一個簡單的解決方案是簡單地創建另一個具有您想要的固定大小的檔案系統。
如果您沒有任何備用區塊存儲,那麼您可以使用指向稀疏文件的環回設備。稀疏檔案在使用之前不會消耗儲存空間,但如果您在該稀疏檔案之上建立檔案系統,它將顯示出固定的最大可用儲存量。不過,增長/收縮會有些困難。最安全的方法是創建一個更大/更小的新的稀疏文件+文件系統,然後傳輸舊文件的內容。
答案2
如果問題具體是日誌文件,請使用支援指定最大文件大小的 syslog 守護程序。我相信 rsyslogd 會做到這一點。如果這是不可能的,有許多 logrotate 程式可以在日誌達到最大檔案大小時輪換日誌並僅保留給定數量的日誌,以便將總大小保持在限制範圍內。