不废话直接上代码:
#!/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 600 ] ; 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
1.在你的root 或home文件夹下新增ClearMemory.sh 把上面的代码粘贴进去(可能会出现编码问题,因为Windows的编码格式和Linux的有一定的区别)。
2.在给ClearMemory.sh 加可执行权限 chmod 777 或 chmod +x 都行。
3.最后添加到Linux的任务中即可。
#crontab -e
将ClearMemory.sh执行脚本加入到系统计划任务,到点自动执行
输入: 10 0 * * * /root/ClearMemory.sh
这里的设置是每天凌晨0点10分执行ClearMemory.sh文件进行清理缓存任务了。
设置完成后,重启cron即可使设置的计划任务定时执行了,重启命令如下:
/bin/systemctl start crond.service