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

10 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 *