Centos 8.*自动定期清理cache化内存脚本
本脚本,在Centos 8.2系统测试可以正常使用,其他平台请自行测试
今天,给各位分享一个可以定期清理cache内存的脚本,根据可用内存自动判断是否需要清理cache。
脚本内容如下:
#!/bin/bash
#该脚本用于清理buff/cache,释放内存
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}MB][Free:${free}MB]” >> /var/log/mem.log
#设置free小于900M时就开始进行清理
if [ $free -le 900 ] ; 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
在opt/shell目录新建一个freemem.sh,上面的脚本内容放于该文件中,请注意编码改为utf-8!换行编码改为Unix,否则会报错的!
接着,运行如下命令:
sh /opt/shell/freemem.sh
查看/var/log/mem.log日志输出是否正常,或者运行命令是否报错!
接着输入crontab -e,进入周期任务编辑模式
输入i键,任意行插入如下代码:
*/30 * * * * sh /opt/shell/freemem.sh
摁下esc,退出编辑模式
输入:wq(英文的:),保存并退出crontab
如此即可自动检查。
需要注意的是,上述脚本的意思大概是:当可用内存少于900M时,自动清理Cache内存!请自信修改900那个数值。不知道什么是Cache内存的,自行科普。可以通过free -m命令查看内存分配情况:
[root@iZwz98biiph4vhee88vxj8Z ~]# free -m
total used free shared buff/cache available
Mem: 3790 1343 1519 30 927 2193
Swap: 4095 0 4095最后,防止大家不知道如何更换脚本编码方式及脚本换行编码方式,把改好的脚本,放于网盘,供各位参考。
下载链接:https://t00y.com/file/30185816-471999810
提取码:533960
2020年11月20日 23:29当然,你也可以不添加周期任务。自己手动执行如下命令
sh /opt/shell/freemem.sh
2020年11月20日 23:35我临时改了下脚本里的900M free内存为1500M内存,测试脚本可以成功释放Cache内存!!!
2020年11月20日 23:41