之前某个地市有台服务器出现问题,但是上面部署的环境比较复杂,暂时不可以更换服务器,所以写个脚本,加入定时任务解决缓存过快消耗的问题
脚本如下:
#!/bin/bash
used=`free -g | awk 'NR==2' | awk '{print $3}'`
free=`free -g | 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 10 ] ; 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
脚本写完后命名为bk.sh,我们将脚本上传的到服务器上某个目录,这里我上传到/home/目录下
首先给freemem.sh赋可执行权限:
cd /home/
chmod -u+x bk.sh
添加定时任务:
在命令行输入: crontab -e 然后添加相应的任务,wq存盘退出。
比如我们现在设置的是每天 晚上23点0分执行
0 23 * * * sh /home/freemem.sh
存盘退出后,在命令行输入 service crond restart ; 提示如下说明重启定时任务成功
查看crontab的日志
日志文件为/var/log/cron
tail -f /var/log/cron
找到对应时间,是否执行指令
这种方式只能看到是否执行,但是并无法确定是否执行成功,我们可以自己看一下程序是否达到执行效果确认
如果以上内容对你有所帮助,大家可以关注一下我的微信公众号“墨叔杂谈”,微信搜索公众号“墨叔杂谈”或者扫描下方二维码即可关注,回复java,可收到java全套学习资料下载地址。并且公众号会定期给大家推送学习技巧和资料。