脚本文件

将脚本放到/opt/shell/freemem.sh

#!/bin/bash
logFile=/opt/shell/log/mem.log

used=`free -m | awk 'NR==2' | awk '{print $3}'`
free=`free -m | awk 'NR==2' | awk '{print $4}'`
cache=`free -m | awk 'NR==2' | awk '{print $6}'`

echo "===========================" >> ${logFile}
date >> ${logFile}
echo "Memory usage | [Use:${used}MB][Free:${free}MB][Cache:${cache}MB}" >> ${logFile}

if [ $cache -ge 300 -o  $free -le 100 ] ; then
                sync && echo 1 > /proc/sys/vm/drop_caches
                sync && echo 2 > /proc/sys/vm/drop_caches
                sync && echo 3 > /proc/sys/vm/drop_caches
                echo "OK" >> ${logFile}
else
                echo "Not required" >> ${logFile}
fi

脚本解释

\$cache -ge 300 -o \$free -le 100 缓存大于300,或 空闲内存小于100时,自动清理内存。

该脚本来自Nodeseekfanlaoxi888