0 votos

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

En la necesidad de añadir mensajes de registro personalizados a ppp.log, veo que falta la fecha y la hora cuando se emite el comando a >> /var/log/ppp.log . Otros mensajes relacionados con pppd en ppp.log tienen como preámbulo un formato de marca de tiempo que es similar a: " Sat Apr 9 17:18:02 2016 : ". Mi objetivo es dar salida a este formato exacto de fecha y hora en un Mavericks shell script

Sé que otros archivos de registro tienen diferentes marcas de fecha/hora. Quiero recrear el formato utilizado en ppp.log.

Regresión

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

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

1voto

Pro Backup Puntos 2314

Después de mucho buscar, un buscar "formato de fecha sin abreviatura alfabética de zona horaria" devuelto Información sobre la ISO 8601, la norma de representación de la fecha y la hora . Esa información me ayudó a descubrir que el formato de marca de tiempo que se está utilizando en Mavericks su archivo /private/var/log/ppp.log, es en realidad el formato asctime() de ANSI C.

C asctime

Para crear asctime al estilo de C en un shell, un sistema no inglés podría necesitar anular la variable de entorno para los mensajes de tiempo:

export LC_TIME="C"

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

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

Un consejo cuando se utiliza echo date ponga 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 ser eliminado de la salida:

$ echo $(date +%c)
Sat Apr 9 21:13:57 2016
$ echo "$(date +%c)"
Sat Apr  9 21:14:30 2016

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X