Limpeza de cache #linux #linux #linux
Script para limpeza de cache, com cálculo de utilização de memória RAM. O script só faz o drop_cache se a memória utilizada for superior a algum valor.
#!/bin/sh
#
# Salve este script no diretório /etc/cron.hourly e dê permissão
# de execução a ele. Desse modo a cada hora sera verificada se a
# porcentagem de memória utilizada pelo sistema atingiu o valor definido
# na variável ‘percent’. Caso positivo, o script informará ao kernel
# que este deverá alterar o valor da opção ‘drop_caches’ para 3.
#
# Mais detalhes: ‘man proc’ -> /proc/sys/vm/drop_caches.
PATH=”/bin:/usr/bin:/usr/local/bin”
# Porcentagem máxima de uso da memória, antes de executar a limpeza:
# Obs.: Altere conforme sua necessidade.
percent=40
# Quantidade de memória RAM no sistema:
ramtotaloriginal=`grep -F “MemTotal:” < /proc/meminfo | awk ‘{print $2}’`
ramtotal=`calc $ramtotaloriginal/1024`
echo “Quantidade de memoria RAM no sistema:” $ramtotal “MB”
# Quantidade de RAM livre:
ramlivreoriginal=`grep -F “MemFree:” < /proc/meminfo | awk ‘{print $2}’`
ramlivre=`calc $ramlivreoriginal/1024`
echo “Quantidade de memoria RAM livre:” $ramlivre “MB”
# RAM utilizada pelo sistema:
ramusadaoriginal=`expr $ramtotaloriginal – $ramlivreoriginal`
ramusada=`calc $ramusadaoriginal/1024`
echo “Quantidade de memoria RAM utilizada:” $ramusada “MB”
# Porcentagem de RAM utilizada pelo sistema:
putil=`expr $ramusadaoriginal \* 100 / $ramtotaloriginal`
echo “Porcentagem de memoria RAM utilizada pelo sistema:” $putil”%”
# Checando porcentagem:
echo “Checando porcentagem…”
if [ $putil -gt $percent ]
then
echo “Sincronizando os dados cacheados na memoria com o(s) disco(s)…”
sync
echo “Dropando cache…”
echo 3 > /proc/sys/vm/drop_caches
else
echo “Remove-se as variaveis da memoria e finaliza-se o script…”
echo unset $percent% $ramtotal”MB” $ramlivre”MB” $ramusada”MB” $putil%
exit $?
fi
# Fim
Advertisement