0 votes

Comment créer un format d'horodatage identique à celui utilisé dans le fichier ppp.log dans un shell script ?

Dans le besoin d'ajouter des messages de journalisation personnalisés au fichier ppp.log, je constate que la date et l'heure sont manquantes lors de la sortie de la commande dans le fichier >> /var/log/ppp.log . D'autres messages relatifs à pppd dans ppp.log sont précédés d'un format d'horodatage qui est similaire à : " Sat Apr 9 17:18:02 2016 : ". Mon objectif est d'afficher ce format exact de date et d'heure dans un fichier de type Mavericks shell script

Je sais que d'autres fichiers journaux ont des horodatages différents. Je veux recréer le format utilisé dans ppp.log.

Régression

Cet environnement Mac OS X 10.9 est configuré avec une locale en néerlandais. Par conséquent, $ echo $(date '+%a') retours " za "au lieu du " Sat ". C'est la partie qui peut être réparée par export LC_TIME="C" o export LC_TIME="POSIX" . J'ai essayé de lire le date y pppd page de manuel. Cependant, il y a toujours le nom alphabétique abrégé du fuseau horaire. CEST (le %Z partie en $ date +%Z ) dans la sortie " Sat Apr 9 18:12:12 CEST 2016 ".

Je sais que je peux créer le format en utilisant toutes les différentes $ date codes de format, comme %a %b %e etcetera. Mais je suppose qu'il y a un chemin plus court, n'est-ce pas ?

1voto

Pro Backup Points 3456

Après de nombreuses recherches, un recherchez "format de date sans abréviation alphabétique de fuseau horaire". a retourné Info sur l'ISO 8601, la norme de représentation de la date et de l'heure . Cette information m'a permis de découvrir que le format d'horodatage utilisé dans le fichier /private/var/log/ppp.log de Mavericks est en fait le format asctime() du langage C ANSI.

C ascendant

Pour créer une heure ascendante de style C dans un shell, un système non anglais peut avoir besoin de remplacer la variable d'environnement pour les messages d'heure :

export LC_TIME="C"

Et puis il y a le $ date option de formatage %c qui affiche désormais la date et l'heure locales dans le format souhaité :

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

Un conseil lorsque vous utilisez echo date Mettez la date entre les apostrophes. echo "$(date +%c)" sinon l'espace de remplissage dans les dates à un chiffre pourrait être supprimé de la sortie :

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

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X