Ubuntu在使用过程中经常会因为内存占满导致死机,表现为界面不动,鼠标、键盘等外接设备无法使用,所以在服务器的使用和维护过程中要考虑加入内存自动刷新脚本。
free命令
使用以下命令可以查看当前机器内存和交换区的使用情况。
free -m
total 内存总数
used 已经使用的内存数
free 空闲的内存数
shared 多个进程共享的内存总额
buff/cache 磁盘缓存的大小
自动释放脚本
使用以下命令创建脚本
vim /home/lvzhiqiang/projects/satools/freemem.sh
输入以下内容
#!/bin/bash
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
if [ $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" >> /var/log/mem.log
else
echo "Not required" >> /var/log/mem.log
fi
保存关闭之后,使用crond创建定时任务,首次使用会提示用户选择编辑器的方式,选择3(vim)即可
sudo crontab -e
输入以下内容,然后保存退出即可
*/10 * * * * sudo sh /home/lvzhiqiang/projects/satools/freemem.sh
上述命令会每个10分钟执行一次清理内存的脚本,具体的执行日志在/var/log/mem.log可以查看
格式解释
举例
特殊格式
感谢指导
[1]: https://blog.csdn.net/qq_21398167/article/details/51657977
[2]: https://blog.csdn.net/capecape/article/details/78515558