#!/bin/bash
USED_CURRENT=`free -m | awk 'NR==2' | awk '{print $3}'`
FREE_CURRENT=`free -m | awk 'NR==2' | awk '{print $4}'`
# crontab定时任务不能使用绝对路径,不会自动执行
TARGETFILE='/root/cleanCache.log'
DATETIME=$(date +"%Y年%m月%d日 %H时%M分")
echo "===========================" >> $TARGETFILE
echo "执行清空缓存时间 ${DATETIME}" >> $TARGETFILE
echo "清理缓存前: | [Used:${USED_CURRENT}MB][Free:${FREE_CURRENT}MB]" >> $TARGETFILE
if [ $FREE_CURRENT -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
USED_CLEAN=`free -m | awk 'NR==2' | awk '{print $3}'`
FREE_CLEAN=`free -m | awk 'NR==2' | awk '{print $4}'`
echo "清理缓存后: | [Used:${USED_CLEAN}MB][Free:${FREE_CLEAN}MB]" >> $TARGETFILE
else
echo "不需要清理缓存" >> $TARGETFILE
fi
echo "===========================" >> $TARGETFILE