Script para limpar memória cache/swap do Linux
Distribuição Testada: Debian 8/9/10
Vamos criar um arquivinho para checar nossa memória e limpar ela.
Comandos:
1 |
# vim /bin/limpamemoria |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
#!/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:
1 |
# chmod +x /bin/limpamemoria |
Agendando no CRON
Vamos adicionar ao cron para rodar a cada 30 min.
Adicione ao final de /etc/crontab:
1 2 |
# echo '# Limpa memoria a cada 30min' >> /etc/crontab # echo '*/30 * * * * root /bin/limpamemoria' >> /etc/crontab |
Verifique se inseriu
1 |
# cat /etc/crontab |
Reinicie o CRON
1 |
# systemctl restart cron |
Para distribuição mais antigas
1 |
# /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.
Não esta criando o arquivo “memoria.log”
Muito bom
cara esses script serve para verificar quando estiver acima de 85%
Se agendar no cron sim.
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 ?
aperte esq, depois :wq! depois enter
Se não sabe mexer com o vim use outro editor: nano… pico…
Muito bom, parabéns!
Sem erro de caracteres agora =P