Script de limpeza de memoria ram e cache

Crie o arquivo
# vim /bin/limpamemoria.sh

insira script abaixo no limpamemoria.sh

#!/bin/sh
 
# Porcentagem máxima (START do script)
percent=85
 
# Memoria total:
ramtotal=`grep -F "MemTotal:" < /proc/meminfo | awk '{print $2}'`
# Memoria livre:
ramlivre=`grep -F "MemFree:" < /proc/meminfo | awk '{print $2}'`
 
# Memoria Utilizada:
ramusada=`expr $ramtotal - $ramlivre`
 
# Porcentagem Utilizada:
putil=`expr $ramusada \* 100 / $ramtotal`
 
echo =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
date
echo
echo "Mem. utilizada: $putil %";
 
if [ $putil -gt $percent ]
then
date=`date`
echo $date >> /var/log/memoria.log
echo "Mem. utilizada: $putil %" >> /var/log/memoria.log
 
echo "Memoria acima de $percent %, cache foi limpado!";
sync
# 'Dropando' cache:
echo 3 > /proc/sys/vm/drop_caches
# Caso nao esteja utilizanod debian, descomente a linha abaixo
# sysctl -w vm.drop_caches=3 
# Zera SWAP
swapoff -a
swapon -a
echo
free -m
echo
echo =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
else
echo "Cache não foi limpado!";
echo =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
unset percent ramtotal ramlivre ramusada putil
exit $?
fi



De permisão no arquivo:
# chmod +x /bin/limpamemoria.sh

Adicione as duas linhas abaixo no arquivo /etc/crontab

 echo '# Limpa memoria a cada 30min' >> /etc/crontab
 echo '*/30 *  * * *   root   /bin/limpamemoria' >> /etc/crontab

De restart na cron
# systemctl restart cron



Para verificar os logs da limpeza basta acessar o arquivo:  /var/log/memoria.log

Comentários