Script para limpar memória cache/swap do Linux

Distribuição Testada: Debian 8/9/10/11/12

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

# vim /bin/limpamemoria

#!/bin/sh

# ********************** #
#    remontti.com.br     #
# ********************** #

# Porcentagem máxima (mude se você achar necessário)
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 
# 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 permissão para executá-lo:

# chmod +x /bin/limpamemoria

Agendando no CRON

Vamos adicionar ao cron para rodar a cada 30 min.
Adicione ao final de /etc/crontab:

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

Verifique se inseriu

# cat /etc/crontab

Reinicie o CRON

# systemctl restart cron

Para distribuição mais antigas

# /etc/init.d/cron restart

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

Gostou? Quer me ajudar? 🙂

Se quiser fazer uma doação para o café ficarei muito feliz pelo seu reconhecimento!

Se não puder doar pode deixar seu agradecimento nos comentário também ficarei feliz em saber que ajudei. Se tiver qualquer pergunta deixe-a também. Se preferir entrar em Contato clique aqui.

Rudimar Remontti

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

Você pode gostar...

9 Resultados

  1. Não esta criando o arquivo “memoria.log”

  2. Leonardo disse:

    Muito bom

  3. geovane disse:

    cara esses script serve para verificar quando estiver acima de 85%

  4. 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 ?

  5. Sem erro de caracteres agora =P

Deixe um comentário

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