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
Postar um comentário