¿Cómo crear un formato de marca de tiempo idéntico al utilizado en el archivo ppp.log en un script de shell?

0

En la necesidad de agregar mensajes de registro personalizados a ppp.log, veo que faltan la fecha y la hora cuando se envía el comando a >> /var/log/ppp.log . Otros mensajes relacionados con pppd en ppp.log se añaden con un formato de marca de tiempo similar a: " Sat Apr 9 17:18:02 2016 : ". Mi objetivo es generar este formato de fecha y hora exacto en un Mavericks shell script

Sé que otros archivos de registro tienen marcas de tiempo de fecha / hora diferentes. Quiero volver a crear el formato como se usa en ppp.log.

Regresión

Este entorno Mac OS X 10.9 está configurado con una configuración regional en idioma holandés. Por lo tanto, $ echo $(date '+%a') devuelve " za " en lugar del " Sat " deseado. Esa es la parte que se puede arreglar con export LC_TIME="C" o export LC_TIME="POSIX" . He intentado leer las páginas de manual date y pppd . Sin embargo, aún existe el nombre abreviado de la zona horaria alfabética CEST (la parte %Z en $ date +%Z ) en la salida " Sat Apr 9 18:12:12 CEST 2016 ".

Sé que puedo crear el formato utilizando todos los diferentes códigos de formato $ date , como %a %b %e etc. Aunque supongo que hay un camino más corto, ¿no?

    
pregunta Pro Backup 09.04.2016 - 21:25

1 respuesta

1

Después de mucha búsqueda, una busca el formato de fecha sin abreviatura de zona horaria alfabética " devolvió Información sobre ISO 8601, el estándar de representación de fecha y hora . Esa información me ayudó a descubrir que el formato de marca de tiempo que se está utilizando en Mavericks es su archivo /private/var/log/ppp.log, en realidad es el formato asctime () de ANSI C.

C asctime

Para crear el tiempo de ascensión de estilo C en un shell, es posible que un sistema que no sea inglés tenga que anular la variable de entorno para los mensajes de hora:

export LC_TIME="C"

Y luego está la opción de formato $ date %c que ahora muestra la hora local en el formato deseado:

$ date +%c
Sat Apr  9 21:10:20 2016

Una sugerencia al usar echo date , coloca la fecha entre apóstrofes echo "$(date +%c)" , de lo contrario, el espacio de relleno en las fechas de un solo dígito podría eliminarse de la salida:

$ echo $(date +%c)
Sat Apr 9 21:13:57 2016
$ echo "$(date +%c)"
Sat Apr  9 21:14:30 2016
    
respondido por el Pro Backup 09.04.2016 - 21:25

Lea otras preguntas en las etiquetas