Linux定時釋放緩存Shell腳本實現自動化運維
阿新 • • 發佈:2018-03-12
Linux定時釋放緩存Shell腳本實現使用Linux服務器的用戶應該都知道,Linux在使用的時候,可用內存會隨著時間慢慢的變小,最終可能到80%-90%,這個時候就需要我們去人工幹預,來進行魂村的釋放。
本文將使用Linux的Cron定時任務結合Shell腳本來實現自動化的內存釋放。
基本流程
1、編寫Shell腳本,檢測當前服務器的內存使用率,如果達到了我們預設的值則強制釋放內存。
2、將編寫好的Shel腳本,添加到Cron定時任務列表中,設置運行周期。
釋放緩存的Shell腳本
如果在終端中我們通常是使用下面的命令來釋放內存 echo 3 >> /proc/sys/vm/drop_caches 命令是強制釋放緩存的命令
sync
echo 3 >> /proc/sys/vm/drop_caches
echo"FreeMemory Success!"
else
echo"rate=$rate Memory is normal"
fi cron是不需要重新啟動的,文件保存後會自動生效。
本文將使用Linux的Cron定時任務結合Shell腳本來實現自動化的內存釋放。
基本流程
1、編寫Shell腳本,檢測當前服務器的內存使用率,如果達到了我們預設的值則強制釋放內存。
2、將編寫好的Shel腳本,添加到Cron定時任務列表中,設置運行周期。
釋放緩存的Shell腳本
如果在終端中我們通常是使用下面的命令來釋放內存
sync
echo3>>/proc/sys/vm/drop_caches
sync命令用於強制被改變的內容立刻寫入磁盤,更新超塊信息
下面給出shell腳本freeMemory.sh
#!/bin/sh
#內存總量
total=$(free-m|grep Mem |awk‘{print $2}‘)
#已使用內存
used=$(free-m|grep Mem |awk‘{print $3}‘)
#內存使用率
rate=$(($used*100/$total))
time=date
echo"############$(date)###############"
#$1 is max Mem
if[$rate-gt$1]
then
echo"rate=$rate freeMemory start!"
echo 3 >> /proc/sys/vm/drop_caches
echo"FreeMemory Success!"
else
echo"rate=$rate Memory is normal"
fi
1、執行命令crontab -e打開編輯定時配置文件
2、在文件的最後面添加下面的命令:
0 23 * /root/freeMemory.sh 70>>/root/freeMemoryLog.txt
上面我們設置了每天的23點執行命令我們的腳本,參數設置70,就是當檢測到內存使用率大於70的時候回執行釋放緩存命令,後面的>>是重定向命令嗎,會將腳本的執行結果寫進文件freeMemoryLog.txt中,便於我們查看。
Linux定時釋放緩存Shell腳本實現自動化運維