Scripting
創建檢查目錄大小的腳本
我的樹莓派有問題,我的 sd 卡只有 16gb 的空間,所以一段時間後 /var/log 中的日誌使用了 sd 上的所有空間,而我的樹莓派幾乎無法做任何事情,所以我嘗試每天創建一個用於檢查/var/log 目錄維度的腳本,然後給我發送一封包含這些數據的郵件,這樣當使用的空間過多時我可以刪除一些日誌,但是我對命令 du -h /var/ 有一些問題記錄因為腳本沒有執行它,任何人都可以幫助我嗎?
這是腳本
#!/bin/bash folder=/var/log folder_size="du -h /var/log" maxsize=10000000 emailAddr="mymail@gmail.com" while true; do if [ $folder_size -ge $maxsize ]; then echo size is over $maxsize kilobytes subject="DIMENSIONE DELLA CARTELLA $folder HA SUPERATO IL LIMITE!" echo "La dimensione della cartella $folder ha superato il limite di $maxsize" | mail -s "$subject" $emailAddr exit else echo size is under $maxsize kilobytes subject="dimensione della cartella $folder" echo "La dimensione della cartella $folder è di $folder_size - $maxsize" | mail -s "$subject" $emailAddr fi sleep 86400 # in seconds = 1 day done
我的作業系統是 raspbyan
du -h /var/log
(您需要使用反引號或 $(xxx),而不是雙引號)將返回如下輸出。但是您只想確定大小。# du -h /var/log 2.6M /var/log/httpd 4.0K /var/log/ntpstats 14M /var/log/sa 4.0K /var/log/mail 26M /var/log/audit 46M /var/log #
而如果您執行
du -s /var/log
,您將看到輸出,例如# du -s /var/log 46256 /var/log #
因此,通過管道進入 cut,您可以提取數字元素,如下所示。
# du -s /var/log | cut -f1 46256 #
意味著腳本中的行應該從
folder_size="du -h /var/log"
到
folder_size=`du -s /var/log | cut -f1`
或者,使用不推薦使用的語法
folder_size=$(du -s /var/log | cut -f1)