linux里如何清理内存(linux内存自动清理工具)
linux里如何清理内存(linux内存自动清理工具)
linux内存清理脚本,新建freeme.sh用于定时清理linux内存,当linux内存使用超过临界值时,快速清理释放内存,并保障主要业务运行,linux 定时脚本crontab使用#! /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
* * * * * /home/freeme.sh
实例2:每小时的第3和第15分钟执行清理
3 15 * * * * /home/freeme.sh
实例3:在上午8点到11点的第3和第15分钟执行清理
3 15 8-11 * * * /home/freeme.sh
实例4:每隔两天的上午8点到11点的第3和第15分钟执行
3 15 8-11 */2 * * /home/freeme.sh
实例5:每周一上午8点到11点的第3和第15分钟执行
3 15 8-11 * * 1 /home/freeme.sh
实例6:每晚的21:30清理
30 21 * * * /home/freeme.sh
实例7:每月1、10、22日的4 : 45
45 4 1 10 22 * * /home/freeme.sh