最近有朋友提出一個需求,問說是否可以寫一支Script來監控Ubuntu的記憶體狀況,可以在記憶空間不足的時候來做一個通報的動作, 於是我就試著寫寫看,就寫出以下這支小程式,在記憶體空間不足除了可以通報外,還可以自己釋放記憶體空間,但是由於自行釋放記憶體空間需要
root權限,所以請記得使用
root權限執行這個Shell Script,單位都是以MB來計算的。
Sample Code
#!/bin/sh
MEMSPACE_FLAG=0 #剩餘記憶體空間參數
MEMMINIUM_FLAG=300 #釋放記憶體空間臨界值參數
while true
do
MEMSPACE_FLAG=`free -m |grep Mem: |awk '{print $4}'` #取得剩餘記憶體
if [ $MEMSPACE_FLAG -lt $MEMMINIUM_FLAG ]; then
echo "insufficient memory space $MEMSPACE_FLAGM MB"
echo 3 > /proc/sys/vm/drop_caches #清空釋放記憶體
else
echo "enough memory space $MEMSPACE_FLAG MB"
fi
sleep 5 #每五秒偵測一次
done