#!/bin/bash

# Este script sirve para liberar memoria cache
# Si la memoria caché supera los 2GB de almacenamiento en RAM, esta se borrará.

# También puedes añadirlo al crontab para que se ejecute cada x tiempo
# por ej se ejecutará cada 10 minutos:
#
# $ crontab -e
# */10 * * * * /ruta/completa/a/clear_cache.sh
#
# $ chmod +x /ruta/completa/a/clear_cache.sh


# Obtenemos los valores de free
cached=$(free -m | awk '/^Mem/ {print $6}')

echo "Cache actual: ${cached} MB"

# Si la caché es mayor a 2048 MB, limpiamos
if [ "$cached" -gt 2048 ]; then
  echo "Cache supera 2GB, limpiando..."
  sync
  echo 3 > /proc/sys/vm/drop_caches
  echo "Cache limpiada."
else
  echo "Cache debajo de 2GB, no se limpia."
fi
