Pues bien, hoy os traigo otro pasito más para alargar aún más si cabe la vida de nuestras SD. Se trata de migrar el fichero /var/log (lugar donde van a parar todos los logs de los demonios y programas) hacia memoria. Está claro que la Pi no es que ande muy sobrada de memoria, pero sí que podemos robarle 40 ó 50Mb. tranquilamente para este menester... Los logs se escriben muchas veces en pocos segundos, y el hacer esto nos evitará escribir en la tarjeta durante mucho tiempo, lo cual es ideal...
Para ello, vamos a usar un scripting llamado "Log2Ram" de azlux.
Los pasos son bastante simples...
==> ESTE MANUAL DE INSTALACIÓN ES VÁLIDO PARA RASPBIAN BASADO EN JESSIE, Y OTRAS DISTROS BASADAS EN LA DEBIAN CON RAMA JESSIE
1º) Nos conectamos a la pi en modo terminal (por ssh, o directamente en la pi abriendo una consola).
2º) En el directorio que nos parezca (yo lo he puesto en /home/pi/dev) vamos a realizar un clonado del repositorio de Log2Ram, para ello hacemos:
Código: Seleccionar todo
git clone https://github.com/azlux/log2ram.git
Código: Seleccionar todo
cd log2ram
Código: Seleccionar todo
nano log2ram.conf
Código: Seleccionar todo
# Configuration file for Log2Ram (https://github.com/azlux/log2ram) under MIT license.
# This configuration file is read by the log2ram service
# Size for the ram folder, it's define the size the log folder will reserve into the RAM. If it's not enough, log2ram will not be able to use ram. Check you /var/log size folde
SIZE=40M
# This variable can be set to true if you prefer "rsync" than "cp". I use the command cp -u and rsync -X, so I don't copy the all folder every time for optimization.
# You can choose which one you want. Be sure rsync is installed if you use it.
USE_RSYNC=true
5º) Ahora, antes de instalar, igual convendría hacer una limpieza de nuestra carpeta de logs. También es una rutina que debemos de hacer de cuando en cuando, para evitar llenar con ficheros no necesarios nuestro disco ram. Ver más abajo el apartado de ===> LIMPIEZA DE LOGS
6º) Vamos a darle permisos de escritura al fichero de instalación, para ello simplemente hacemos un:
Código: Seleccionar todo
chmod +x install.sh
Código: Seleccionar todo
sudo ./install.sh
Una vez concluida la instalación (no tarda ni dos segundos) nos pedirá reiniciar.
Código: Seleccionar todo
sudo reboot
Código: Seleccionar todo
df -h
Código: Seleccionar todo
S.ficheros Tamaño Usados Disp Uso% Montado en
/dev/root 30G 4,6G 24G 17% /
devtmpfs 458M 0 458M 0% /dev
tmpfs 462M 0 462M 0% /dev/shm
tmpfs 462M 6,6M 456M 2% /run
tmpfs 5,0M 4,0K 5,0M 1% /run/lock
tmpfs 462M 0 462M 0% /sys/fs/cgroup
/dev/mmcblk0p1 63M 21M 42M 34% /boot
log2ram 40M 13M 28M 31% /var/log
tmpfs 93M 0 93M 0% /run/user/999
tmpfs 93M 0 93M 0% /run/user/1000
Por otro lado, si nos vamos a /var y hacemos un ls, veremos que ahora tenemos dos directorios de log..., uno llamado "log", y otro llamado "log.hdd". El directorio "log" es realmente el disco ram, y el log.hdd apunta a la tarjeta SD. También podríamos hacerlo apuntar a un disco duro externo si nos apeteciera (si alguien está interesado que pregunte).
Por defecto log2ram copiará los logs de la memoria ram a la tarjeta SD cada hora. Si esto os parece excesivo, se puede aumentar el tiempo. Yo lo he puesto cada día (es decir, cada 24 horas). Para ello basta con poner el siguiente comando:
Código: Seleccionar todo
sudo mv /etc/cron.hourly/log2ram /etc/cron.daily/
Si vamos a la carpeta de los logs con un:
Código: Seleccionar todo
cd /var/log
Normalmente sólo vamos a necesitar los logs actuales, y como mucho los que terminan en .1 si queremos tener un mínimo histórico. Los otros los podemos borrar o mover a otra ubicación (bien a un disco externo, o a la SD si os apetece).
Así, por tanto, si queremos borrarlos podríamos hacer un:
Código: Seleccionar todo
sudo rm -R *.gz
Código: Seleccionar todo
sudo mv *.gz <destino>
Nota: Si borramos en la carpeta /log, en la siguiente sincronización del log también se borrarán de log.hdd, por tanto, si queremos mantener copia del histórico tenemos que mover los ficheros al sitio donde decidamos...
Espero que os sea útil, y si tenéis cualquier duda, no vaciléis en consultar!!!
*Rotados: Hay un servicio llamado "logrotate" que lo que hace es cambiar el log actual donde van los mensajes de una aplicación o demonio por uno nuevo, guardando el anterior comprimido o sin comprimir, en otro fichero aparte.