Script para limpar memória cache do Linux

Distribuição Testada: Debian 8 (Jessie)

Vamos criar um arquivinho para checar nossa memória e limpar ela.
Comandos:

# cd /etc/init.d/
# vim limpamemoria.sh

#!/bin/sh
#!/bin/sh
# remontti.com.br
PATH="/bin:/usr/bin:/usr/local/bin"
 
# Porcentagem maxima (mude se vc achar q deve) eu deixo em 85%
percent=85
 
# Total da memoria:
ramtotal=`grep -F "MemTotal:" < /proc/meminfo | awk '{print $2}'`
# Memoria livre:
ramlivre=`grep -F "MemFree:" < /proc/meminfo | awk '{print $2}'`
 
# RAM utilizada pelo sistema:
ramusada=`expr $ramtotal - $ramlivre`
 
# Porcentagem de RAM utilizada pelo sistema:
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 
echo
free -m
echo
echo =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
else
echo "Cache nao foi limpado!";
echo =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
unset percent ramtotal ramlivre ramusada putil
exit $?
fi

Saia e salve o arquivo, agora vamos dar permissão de executá-lo:

# chmod 755 limpamemoria.sh

EXTRA (Agendando no Cron)

Vamos adicionar ao cron para rodar a cada 30 min.
Comandos:

# vim /etc/crontab

Adicione:

00-59/30 * * * * root /etc/init.d/limpamemoria.sh

Feito, cada vez q ele limpar vai gerar um log em var/log/memoria.log

Rudimar Remontti

Trabalho atualmente como Gerente de Redes em um Provedor de Internet no Rio Grande do Sul.

Você pode gostar...

3 Resultados

  1. carlos disse:

    nao estou conseguindo passar desta parte : “Saia e salve o arquivo, agora vamos dar permissão de executá-lo:” , como faço pra sair e salvar ?

  2. Sem erro de caracteres agora =P

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *