#! /bin/sh
echo "linux内存清理腳本,用于定時清理linux内存,當linux内存使用超過臨界值時,快速清理釋放内存,并保障主要業務運行,linux 定時腳本crontab使用"
#當前使用内存
used=`free -m | awk 'NR==2' | awk '{print $3}'`
#當前空閑内存
free=`free -m | awk 'NR==2' | awk '{print $4}'`
#追加輸出分隔符日志到/home/logs/memuse.log文件
echo "===========================" >> /home/logs/memuse.log
#追加輸出時間到日志文件
date >> /home/logs/memuse.log
#追加輸出内存使用情況到日志文件
echo "Memory usage before | [Use:${used}MB][Free:${free}MB]" >> /home/logs/memuse.log
#當剩餘内存小于4G時,觸發清理内存
if [ $free -le 4000 ] ; then
#内存清理邏輯
sync && echo 3 > /proc/sys/vm/drop_caches
used_ok=`free -m | awk 'NR==2' | awk '{print $3}'`
free_ok=`free -m | awk 'NR==2' | awk '{print $4}'`
echo "Memory usage after | [Use:${used_ok}MB][Free:${free_ok}MB]" >> /home/logs/memuse.log
#當内存清理完成後的主要業務處理邏輯
docker restart tomcat8 tomcat8-test
#内存清理完成,追加成功日志
echo "OK" >> /home/logs/memuse.log
else
#不需要清理日志
echo "Not required" >> /home/geocube/gc-shell/logs/mem.log
fi
exit 1
實例1:每1分鐘執行一次清理
* * * * * /home/freeme.sh
3,15 * * * * /home/freeme.sh
3,15 8-11 * * * /home/freeme.sh
3,15 8-11 */2 * * /home/freeme.sh
3,15 8-11 * * 1 /home/freeme.sh
30 21 * * * /home/freeme.sh
45 4 1,10,22 * * /home/freeme.sh
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!