Para completar, el archivo que contiene todas estas secuencias de escape es generado por el bootlogd daemon (paquete bootlog en la familia Debian) que captura todos los mensajes coloreados enviados a la consola durante el arranque. En la consola, estos mensajes se muestran primero como la siguiente línea:
[....] Starting periodic command scheduler: cron
entonces, cuando se ejecuta el servicio o mando, una secuencia de escape se envía a la consola para cambiar la posición del cursor al principio de la línea y grabados ok, fail, información, etc ... advierten
[ ok ] Starting periodic command scheduler: cron.
todos estos mensajes son capturados por el bootlogd demonio y se escriben en un archivo con todas sus secuencias de escape que incluye el reposicionamiento. No hay problema, excepto que ^[
debe reemplazarse por octal 033
para que el archivo se muestre correctamente. Pero, como hay una captura, el daemon también agrega un sello de fecha delante del mensaje sin cambiar las coordenadas de la secuencia de reposicionamiento del cursor. En consecuencia, ok, fail etc ... los mensajes sobrescriben parte del sello de fecha. No está bien.
Fri May 25 17:13:01 2012: [....] Starting periodic command scheduler: cron
becomes...
[ ok ay 25 17:13:01 2012: [....] Starting periodic command scheduler: cron.
La solución es cambiar la secuencia de posicionamiento del cursor. Por intento y error, encontré esa secuencia como ^[1G
. El siguiente comando sed finalmente hacer el trabajo:
sed 's/\^\[/\o33/g;s/\[1G\[/\[27G\[/' /var/log/boot
la bootlogd demonio debe purgar toda la secuencia de escape antes de enviar los mensajes de la consola en el archivo. ¿Podemos llamar esto un error?
Este "error" también puede estar presente en todos los herederos de Debian como Ubuntu, Mint, etc ...
¿'cat' no funciona? –
cat funciona solo después de que '^ [' se reemplaza por su equivalente octal '033', vea mi propia respuesta a continuación. – ripat