通常,要在 linux 終端删除一個檔案,我們使用 rm 指令(删除檔案)、shred 指令(安全删除檔案)、wipe 指令(安全擦除檔案)或者 secure-deletion 工具包(一個安全檔案删除工具集合)。
我們可以使用上述任意的工具來處理相對較小的檔案。如果我們想要删除超大的檔案/檔案夾,比如大概 100-200gb,在删除檔案(i/o 排程)所花費的時間以及 ram 占用量方面,就沒有你想的那麼簡單。
在本教程中,我們會解釋如何在 linux 中有效率并可靠地删除大檔案/檔案夾。
建議閱讀: 5 個在 linux 中清空或者删除大檔案的方法
我們的主要目标是使用一種不會在删除大檔案時拖慢系統的技術,合理地占用 i/o。我們可以用 ionice 指令實作這個目标。
在 linux 中使用 ionice 指令删除超大(200gb)檔案
ionice 是一個可以對另一個程式設定或擷取 i/o 排程級别和優先級的有用程式。如果沒有給出參數或者隻有 -p 參數,那麼 ionice 将會查詢該程序的目前的 i/o 排程級别以及優先級。
如果我們給出指令名稱,如 rm 指令,它将使用給定的參數運作此指令。要擷取或設定排程參數,請指定[程序的 pid],如下:
# ionice -p pid
要指定名字或者排程的數字,使用(0 表示無、1 表示實時、2 表示盡力、3 表示空閑)下面的指令。
以下指令表示 rm 會屬于空閑 i/o 級别,并且隻在其他程序不使用的時候使用 i/o:
---- deleting huge files in linux -----
# ionice -c 3 rm /var/logs/syslog
# ionice -c 3 rm -rf /var/log/apache
如果系統中沒有很多空閑時間,那麼我們希望使用盡力排程級别,并且使用低優先級:
# ionice -c 2 -n 6 rm /var/logs/syslog
# ionice -c 2 -n 6 rm -rf /var/log/apache
注意:要使用安全的方法删除大檔案,我們可以使用先前提到的 shred、wipe 以及 secure-deletion 工具包中的不同工具,而不是 rm 指令。
建議閱讀:3 個在 linux 中永久/安全删除檔案/檔案夾的方法
要擷取更多資訊,查閱 ionice 的手冊頁:
# man ionice
就是這樣了!你腦海裡還有其他的方法麼?在評論欄中與我們分享。
作者:aaron kili
來源:51cto