        |
Añadir ficheros a rotar en paradas de ml
En las paradas de metro ligero, se está usando un Linux Debian 3.1 con núcleo 2.4, en el que algunos directorios están en RAM (y son una copia de los que hay en el FlashDisk). Así el disco flash queda montado en sólo lectura, con lo que el sistema es mucho más resistente a caídas de tensión.
Los directorios del FlashDisk están en /mnt/orig (por ejemplo /mnt/orig/etc/init.d), mientras que los directorios en RAM están en los lugares de uso (en el ejemplo anterior /etc/init.d). Hacer un "ls /mnt/orig" para ver qué directorios del FlashDisk están sobreescritos con un disco RAM.
Además hay un disco duro que se monta en /media/hdd, y que tiene los ficheros rotados en /media/hdd/TCE.
La script que los rota es /etc/init.d/control-datos, que es llamada por /etc/init.d/control al hacer el stop (eso es, todos los días por la noche; ver el crontab de root con un "crontab -l" para saber la hora exacta; habrá una llamada a un script con un nombre representativo, como puede ser rebwait).
El número de días que se guarda para los logs está definido al principio de la script /etc/init.d/control-datos, en la variable KEEPLOG (por defecto: "KEEPLOG=15").
La script /etc/init.d/control-datos usa el fichero /etc/init.d/control-datos.txt para saber qué tiene que rotar.
El contenido del fichero control-datos.txt es por bloques. Cada bloque tiene una cabecera, que consta de la letra '@' seguida del directorio que se va a describir (valen comodines, p.ej. "@/home/metro/sistema/V/CtrlMegaf/MGF*"), y a continuación líneas que van describiendo cada tipo de fichero/dorectorio a rotar o guardar.
El caso más sencillo es cuando sólo hay ficheros de log y ficheros de estado:
@/home/metro/sistema/V/CtrlMegaf/MGF*
fichlog $self xTrazas.Log xTrazasMensajes.Log xTrazasPrevisiones.Log
fichestado $self xEstado
La primera línea es el directorio que se va a describir, en este caso son los directorios de los procesos de megafonía.
La segunda línea indica los ficheros de log, que se meterán en el directorio "$self" (es una palabra clave, que indica que se usa el mismo nombre que el directorio final del path; p. ej. si es /home/metro/sistema/V/CtrlMegaf/MGF53181, $self vale MGF53181, por lo que los logs se guardarán en /media/hdd/TCE/MGF53181).
La tercera línea indica un fichero de estado, que se guarda en /opt/updates para que no se pierda al reiniciar el equipo (por estar en flash). Las scripts de inicio del sistema (específicamente /etc/init.d/mountall.sh) copian lo que haya en /opt/updates al / una vez que están en su sitio los discos RAM.
Los tipos de línea que te puedes encontrar son:
| Tipo | Descripción | Copiado a | Rotado/sobreescrito |
| fichlog | Fichero de log | /mnt/media/TCE/nombredir | Rotado |
| dirlog | Directorio de log | /mnt/media/TCE/nombredir | Rotado |
| fichestado | Fichero de estado | /opt/updates/pathcompleto | Sobreescrito |
| direstado | Directorio de estado | /opt/updates/pathcompleto | Sobreescrito (borrado del antiguo) |
| fichbuzon | Fichero de buzón con "mensajes" encolados para procesamiento posterior | /opt/updates/pathcompleto | Sobreescrito |
| dirbuzon | Directorio de buzón con "mensajes" encolados para procesamiento posterior | /opt/updates/pathcompleto | Sobreescrito (borrado del antiguo) |
Para cambiar el contenido del control-datos.txt, el procedimiento recomendado es:
# mount -o remount,rw /
# vi /mnt/orig/etc/init.d/control-datos.txt
# cp /mnt/orig/etc/init.d/control-datos.txt /etc/init.d/control-datos.txt
# mount -o remount,ro /
|