2012-09-17 38 views
0

我需要幫助更改腳本:我需要在特定分區上設置閾值。如何獲取特定分區的填充閾值

我的腳本:

for n in `df -h|awk {'print $5'}|awk -F% {'print $1'}`; do 
     if [ $n -gt 85 ] 
     then 
      echo $n."iiiiiiiiiiii"; 
     endif 

請幫助解決這個問題。 設置爲所有,但我需要特定的分區。

問候, Riddhi

+0

感謝羅布麻,我需要排除特定分區形成一切,那麼我應該如何改變這個命令,我應該使用cut命令? – RPL

+0

請發佈'df -h'完整的未經編輯的輸出,然後告訴我們在處理完腳本後您期望的內容。 – Jens

回答

1

什麼不起作用?請提供確切的錯誤消息。您是否收到關於未終止的if的語法錯誤?這將歸因於,它應該在Bourne遺產貝殼中讀取fi。 PS:回聲之後的分號無用,您需要done來終止for循環。

選擇某種特定的分區應該以

df -h /dev/your_partition_here | awk ... 

df(1)手冊(類型man df)的工作將提供大量的細節。

+0

嗨..感謝您的幫助... – RPL

+0

很高興能有所幫助。如果解決了您的問題,您應該提供有用的答案並接受答案。 – Jens

+0

我怎樣才能排除這個分區形式全部,總共有19個分區,我想排除所有/ cs形式(我的分區) – RPL

1

更改您的awk命令以匹配分區名稱。例如,如果你的分區爲「/some/path」,那麼你的命令是:(你需要躲避前方的分區名稱斜槓)

for n in `df -h|awk '/\/some\/path/{print $5}'|awk -F% {'print $1'}`; do 
     if [ $n -gt 85 ] 
     then 
      echo $n."iiiiiiiiiiii"; 
     fi 
done 

+1

爲什麼不簡單地將分區作爲參數提供給df?在awk中沒有凌亂的逃避和無用的線條閱讀。 – Jens