LEDE / OPENWRT 自动清理内存

配置openwrt时,ssh终端收到错误提示;****out of memory。各种无响应,郁闷之下发扬搬运精神,于是有了下面的脚本



#!/bin/sh

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

free=`free -m | awk 'NR==2' | awk '{print $4}'`

echo "===========================" >> /var/log/mem.log

date >> /var/log/mem.log

echo "Memory usage | [Use:${used}KB][Free:${free}KB]" >> /var/log/mem.log

if [ $free -le 153600 ] ; 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" >> /var/log/mem.log

else

echo "Not required" >> /var/log/mem.log

fi



具体作用,查询内存剩余量,低于限定量则清理内存。这里是153600也就是150M以下清理,这里先运行sync,可以防止数据丢失。保存为以下路径:/usr/bin/memclean.sh

然后设置定时运行,修改 /etc/crontabs/root 文件,添加一行

*/10 * * * * /usr/bin/memclean.sh

表示10分钟检测一次内存余量,低于150M 就清理!!!!

你可能感兴趣的:(LEDE / OPENWRT 自动清理内存)