我們有多個大資料作業。其中一些大資料作業會在 /tmp/ 中創建多個檔案夾。
這些檔案和檔案夾由 hive/spark 作業創建。
這些檔案夾以“_resources”結尾。所以,“*_resources”。
現在,如果我們不洗掉這些檔案夾/檔案,我們的平臺就會出現問題。
我們希望洗掉這些檔案以避免平臺出現任何問題。
我們如何使用 python 或 shell 腳本來做到這一點?Shell 腳本會是我們更好的選擇。
謝謝你。
uj5u.com熱心網友回復:
您可以使用查找命令
find / -mtime 30 -user username -exec rm -r {} \;
/父目錄的路徑30回傳的天數,例如,如果您輸入 -mtime5,它將洗掉所有 OLDER 然后 5 天。(如果您想要確切的時間,請參閱mmin以下內容username洗掉檔案的用戶名
如果您將所有這些用戶分組在一個組中,您也可以使用
-group而不是-user
我建議您在執行實際洗掉之前列印命令找到的路徑,以確保它是您想要的
find / -mtime 30 -user username
如果您擔心確切的 Y 小時而不是天,您可以使用 the-mmin而不是-mtime,它需要幾分鐘而不是幾天,例如:
find / -mmin 120 -user username -exec rm -r {} \;
上一個命令將洗掉用戶擁有的任何username早于120 minutes(2 小時)的內容
uj5u.com熱心網友回復:
建議空運行/測驗find輸出命令,然后執行不可逆轉的洗掉。幾次以獲得信心。然后使用cron.
find / -mtime 30 -user username -type d -name "*_resources" -printf "rm -rf %p\n"
當您準備好并find找到正確的目錄并構建正確的rm命令時。
rm使用以下命令一次執行所有構造的命令:
bash <<< $(find / -mtime 30 -user username -type d -name "*_resources" -printf "rm -rf %p\n")
uj5u.com熱心網友回復:
男人發現
-daystart從今天開始而不是從 24 小時前開始 測量時間(對于 -amin、-atime、-cmin、-ctime、-mmin和 -mtime)。此選項僅影響稍后出現在命令列上的測驗。
-mmin 檔案被修改時的分鐘數
hours=2
find /tmp -type d -mmin -$((60*$hours)) -user username -print0|xargs -I dir -0 rm -rf "dir"
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/487316.html
