Categories
Bash Scripts

Memory cache flush cron if free Memory is less than X

vim /root/memory_cache_flush.sh

#!/bin/bash
freem=$(free -m|grep Mem|awk '{print $4}')
# change 1024 to other value, for e.g you want set limit to 2GB then change it to 2048
if [ "$freem" -lt 1024 ]
then
echo 1 > /proc/sys/vm/drop_caches
freenew=$(free -m|grep Mem|awk '{print $4}')
echo "Server had only $freem MB free RAM, After memory cache is flushed, free RAM is $freenew MB" | mail -s "Memory cache flushed on server server.the-d2.com IP_HERE" [email protected]
else
echo "Nothing to do"
fi

chmod 775 memory_cache_flush.sh
# Now add below line to ‘crontab -e
* * * * * bash /root/memory_cache_flush.sh

Leave a Reply