Jak wszyscy wiemy, „unix” może zawierać w pliku wszystko oprócz „/” i „\ 0”, sysadmini mają jednak znacznie mniejsze preferencje, głównie z powodu braku lubienia spacji jako danych wejściowych ... i wielu rzeczy mających specjalne znaczenie między innymi „:” i „@”.
Ostatnio widziałem inny przypadek, w którym w nazwie pliku użyto znacznika czasu, a po graniu w różnych formatach, aby było „lepiej”, pomyślałem, że spróbuję znaleźć „najlepszą praktykę”, a nie taką, którą wymyśliłem Chciałbym tylko zapytać tutaj i zobaczyć, co ludzie myślą.
Możliwe „wspólne” rozwiązania (p = przedrostek is = przyrostek):
Format syslog / logrotate / DNS:
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
plusy:
- Jest „powszechny”, więc „wystarczająco dobry” może być lepszy niż „najlepszy”.
- Żadnych dziwnych postaci.
- Łatwo odróżnić „obiekt blob daty / godziny” od wszystkiego innego.
Cons:
- Wersja tylko z datą nie jest łatwa do odczytania, a uwzględnienie czasu powoduje, że moje oczy krwawią, a sekundy to po prostu „lol”.
- Zakłada TZ.
Format ISO-8601
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
plusy:
- Bez odstępów.
- Uwzględnia TZ.
- Jest „niezły” do odczytania przez ludzi (tylko data jest w. Dobra).
- Może być wygenerowany przez $ (data --iso = {godziny, minuty, sekundy})
Cons:
- scp / tar / etc. nie polubią tych znaków „:”.
- Trochę czasu zajmuje „normalnym” ludziom zobaczenie WTF, do czego służy „T”, i na czym to polega na końcu :).
- Wiele znaków „-”.
format rfc-3339
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
plusy:
- Uwzględnia TZ.
- Może być łatwo odczytany przez „wszystkich ludzi”.
- Potrafi odróżnić datę / godzinę od prefiksu / sufiksu.
- Niektóre z powyższych można wygenerować za pomocą $ (data --iso = {godziny, sekundy})
Cons:
- Ma spacje w wersjach czasowych (co oznacza, że cały kod go nienawidzi).
- scp / tar / etc. nie polubią tych znaków „:”.
Uwielbiam łączniki:
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
plusy:
- w zasadzie nieco ładniejszy syslog / etc. wariant.
Cons:
- Wiele znaków „-”.
- Zakłada TZ.
Uwielbiam łączniki z rozszerzeniami:
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
plusy:
- w zasadzie nieco ładniejszy wariant „Uwielbiam łączniki”.
- Żadnych dziwnych postaci.
- Potrafi odróżnić datę / godzinę od prefiksu / sufiksu.
Cons:
- Za pomocą '.' tutaj jest nieco nietradycyjny.
- Zakłada TZ.
... więc każdy chce podać preferencje i powód, lub więcej niż jeden (np. nie przejmuj się TZ, jeśli 95% pozostaje, aby pozostać maszyną lokalnie, ale dbaj bardzo, jeśli nie jest).
Lub oczywiście coś, czego nie ma na powyższej liście.