1. 程式人生 > >Linux定時釋放緩存Shell腳本實現自動化運維

Linux定時釋放緩存Shell腳本實現自動化運維

Linux定時釋放緩存Shell腳本實現

使用Linux服務器的用戶應該都知道,Linux在使用的時候,可用內存會隨著時間慢慢的變小,最終可能到80%-90%,這個時候就需要我們去人工幹預,來進行魂村的釋放。
本文將使用Linux的Cron定時任務結合Shell腳本來實現自動化的內存釋放。
基本流程
1、編寫Shell腳本,檢測當前服務器的內存使用率,如果達到了我們預設的值則強制釋放內存。
2、將編寫好的Shel腳本,添加到Cron定時任務列表中,設置運行周期。
釋放緩存的Shell腳本
如果在終端中我們通常是使用下面的命令來釋放內存

sync
echo3>>/proc/sys/vm/drop_caches
sync命令用於強制被改變的內容立刻寫入磁盤,更新超塊信息

echo 3 >> /proc/sys/vm/drop_caches 命令是強制釋放緩存的命令

下面給出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!"

sync
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中,便於我們查看。

cron是不需要重新啟動的,文件保存後會自動生效。

Linux定時釋放緩存Shell腳本實現自動化運維