iT邦幫忙

0

需要 shell script

平常在管理 linux server
雖然會安裝設定就是不會寫shell script
只好上來求助了

我需要一隻shell script 會檢查資料夾內檔案的大小
如果超過80mb 管理者root 並告知哪個檔案已經超過80mb了
我公司是用 centos

2 個回答

18
逮丸逮丸
iT邦大師 1 級 ‧ 2011-06-14 13:18:42
最佳解答

不需用到 shell script 就可做到這事:

<pre class="c" name="code">find /home -type f -size +81920 -printf "%s:%h%f\n"

若不需秀檔案大小數,
把 -printf 及其後都拿掉。
81920 是 1024*80(MB) 而來的。
1GB就是 1024*1024 = +1048576

看更多先前的回應...收起先前的回應...

如果要定時檢查,把查到的結果寄給某信箱的話,
可利用 crontab 來執行:
用root的身份執行 crontab -e 在最底下多加一行:

<pre class="c" name="code">59 23 * * * find /home -type f -size +81920 -printf "%s:%h%f\n" | mail -s "bigger than 800MB files" aesop@company.com.tw

這樣就會每天晚上 11:59 把檢查 /home 超過 80MB 的結果寄給指定的信箱。

有沒有這麼厲害呀
一行就搞定
還送crontab拍照拍手

easonjuan iT邦研究生 1 級 ‧ 2011-06-15 09:47:18 檢舉

完全看不懂~但好厲害!

tombo提到:
可以改用 du

這是蠻好的提醒,
可用du這工具來解,
利用以下指令來列出超過80M的檔案:

<pre class="c" name="code">du -am /home | grep -v "\.$" | awk '{if ($1 > 80) print $0}'

但缺點是也會把各子目錄的大小也列出來。

2
tombo
iT邦高手 1 級 ‧ 2011-06-24 14:32:51

好久沒用 linux ....
不過...樓主好像要的是看整個目錄的使用容量有沒有超過 80MB ??
還是單一檔案超過 80MB ??

如果是要檢查目錄大小,可以改用 du

我要發表回答

立即登入回答