1 准备一个定时释放内存的命令:freemem.sh
# vim freemem.sh #!/bin/bash used=`free -m | awk 'NR==2' | awk '{print $3}'` free=`free -m | awk 'NR==2' | awk '{print $4}'` filename=/var/log/mem.log filesize=`ls -l $filename | awk '{ print $5 }'` maxsize=$((1024*2)) if [ $filesize -gt $maxsize ] then sudo rm $filename else echo "" fi 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_cach 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
2 将执行任务写入 定时任务
sudo crontab -e 结尾添加: */1 * * * * sudo sh /home/dxs/software/freemem.sh ## 意思是:设置每1min执行一次,会自动写入之前脚本里指定的log
3 重新启动定时任务
重启服务: sudo service cron restart ============================= 修改rsyslog sudo vim /etc/rsyslog.d/50-default.conf cron.* /var/log/cron.log #将cron前面的注释符去掉 重启rsyslog sudo service rsyslog restart sudo service cron restart 查看crontab日志 tail -f /var/log/cron.log
4 完成,以后再也不会死机了。。。。。。