Wie wir alle wissen, kann "Unix" alles in einer Datei haben, außer '/' und '\ 0', aber Sysadmins tendieren dazu, eine viel geringere Präferenz zu haben, hauptsächlich, weil sie Leerzeichen als Eingabe nicht mögen ... und eine Menge Dinge haben eine besondere Bedeutung unter anderem für ':' und '@'.
Kürzlich hatte ich noch einen anderen Fall gesehen, in dem ein Zeitstempel in einem Dateinamen verwendet wurde, und nachdem ich ein bisschen mit verschiedenen Formaten gespielt hatte, um es "besser" zu machen, dachte ich mir, ich würde versuchen, eine "Best Practice" zu finden, ohne eine zu sehen, die ich dachte Ich würde hier nur fragen und sehen, was die Leute dachten.
Mögliche "gemeinsame" Lösungen (p = Präfix und s = Suffix):
syslog / logrotate / DNS ähnliches Format:
p-%Y%m%d-suffix = prefix-20110719-s p-%Y%m%d%H%M-suffix = prefix-201107191732-s p-%Y%m%d%H%M%S-suffix = prefix-20110719173216-s
Profis:
- Es ist "gewöhnlich", also ist "gut genug" vielleicht besser als "am besten".
- Keine komischen Charaktere.
- Leicht zu unterscheidender "Datum / Uhrzeit-Fleck" von allem anderen.
Nachteile:
- Die Nur-Datum-Version ist nicht leicht zu lesen, und wenn ich die Zeit mitzähle, bluten meine Augen, und auch die Sekunden sind nur "lol".
- Angenommen, TZ.
ISO-8601-Format
p-%Y-%m-%d-s = p-2011-07-19-s p-%Y-%m-%dT%H:%M%z-s = p-2011-07-19T17:32-0400-s p-%Y-%m-%dT%H:%M:%S%z-s = p-2011-07-19T17:32:16-0400-s p-%Y-%m-%dT%H:%M:%S%z-s = p-2011-07-19T23:32:16+0200-s
Profis:
- Kein Platz.
- Berücksichtigt TZ.
- Ist von Menschen "nicht schlecht" zu lesen (Datum ist nur v. Gut).
- Kann durch $ generiert werden (Datum --iso = {Stunden, Minuten, Sekunden})
Nachteile:
- scp / tar / etc. mag diese ':' Zeichen nicht.
- Dauert ein bisschen, damit "normale" Leute WTF sehen, für die "T" ist, und was die Sache am Ende ist :).
- Viele '-' Zeichen.
RFC-3339-Format
p-%Y-%m-%d-s = p-2011-07-19-s p-%Y-%m-%d %H:%M%:z-s = p-2011-07-19 17:32-04:00-s p-%Y-%m-%d %H:%M:%S%:z-s = p-2011-07-19 17:32:16-04:00-s p-%Y-%m-%d %H:%M:%S%:z-s = p-2011-07-19 23:32:16+02:00-s
Profis:
- Berücksichtigt TZ.
- Kann leicht von "allen Menschen" gelesen werden.
- Kann Datum / Uhrzeit von Präfix / Suffix unterscheiden.
- Einige der oben genannten Werte können mit $ (Datum --iso = {Stunden, Sekunden}) generiert werden.
Nachteile:
- Hat Leerzeichen in den Zeitversionen (was bedeutet, dass der gesamte Code es hassen wird).
- scp / tar / etc. mag diese ':' Zeichen nicht.
Ich liebe Bindestriche:
p-%Y-%m-%d-s = p-2011-07-19-s p-%Y-%m-%d-%H-%M-s = p-2011-07-19-17-32-s p-%Y-%m-%d-%H-%M-%S-s = p-2011-07-19-23-32-16-s
Profis:
- im grunde ein etwas netteres syslog / etc. Variante.
Nachteile:
- Viele '-' Zeichen.
- Angenommen, TZ.
Ich liebe Bindestriche mit Erweiterungen:
p.%Y-%m-%d.s = p.2011-07-19.s p.%Y-%m-%d.%H-%M.s = p.2011-07-19.17-32.s p.%Y-%m-%d.%H-%M-%S.s = p.2011-07-19.23-32-16.s
Profis:
- Im Grunde genommen eine etwas schönere Variante "Ich liebe Bindestriche".
- Keine komischen Charaktere.
- Kann Datum / Uhrzeit von Präfix / Suffix unterscheiden.
Nachteile:
- '.' Verwenden hier ist etwas untraditionell.
- Angenommen, TZ.
... daher möchte jeder eine Präferenz und einen Grund oder mehr als einen angeben (z. B. ist TZ egal, wenn 95% der Maschinen lokal bleiben, aber es ist sehr wichtig, wenn dies nicht der Fall ist).
Oder natürlich etwas, das nicht in der obigen Liste enthalten ist.