0
以下是我需要創建bash腳本的高級場景。Bash腳本 - 需要從目錄中刪除文件,直到目錄大小小於8 TB
- 服務器
- /sasdata2/SAS-USERS/PBU/
- 如果大小超過8 TB以上目錄的大小不應該超過8 TB
- ,需要刪除最早的文件通過「創建上的目錄/修改'日期以將大小減小到8TB。
- 這個主目錄中有幾個子目錄,但沒有東西應該從子目錄中刪除。只有主目錄中的文件可以被刪除。
下面是我正在使用的腳本,但它在while語句中處於無限循環。在爲上述場景製作腳本時需要您的幫助。
while [ "$(du -shb /sasdata2/SAS-USERS/PBU | awk '{print $1}')" -gt 900 ]
do
find /sasdata2/SAS-USERS/PBU -maxdepth 0 -type f -printf '%[email protected]\t%p\n' | \
sort -n | head -n 25 | cut -d $'\t' -f 2- | xargs -d '\n' rm -f
done
如果我們不允許觸及的子目錄大於8TB,那麼循環無法完成。 – tripleee
爲什麼它需要是Bash?與Perl或Python相反呢? –
你有沒有想過可能壓縮一些用戶的文件,而不是隨意刪除它們?順便說一句,因爲你的腳本中不良SAS用戶文件的路徑不止一次出現,所以你應該考慮把它放在一個變量中。 –