타임 스탬프를 포함하는 선호하는 파일 이름 형식


16

우리 모두가 "unix"가 '/'와 '\ 0'을 제외하고 파일에 무엇이든 가질 수 있다는 것을 알고 있지만, sysadmins는 입력과 같이 공백을 좋아하는 것이 없기 때문에 선호도가 훨씬 더 작습니다. ':'및 '@'에 대한 특별한 의미입니다.

최근에 타임 스탬프가 파일 이름에 사용 된 또 다른 경우를 보았고 다른 형식으로 조금 더 "더 나은"형식으로 재생 한 후에 "내가 생각한 것을 보지 않고"모범 사례 "를 찾으려고 생각했습니다. 난 그냥 여기에 물어 사람들이 어떻게 생각하는지 볼 것입니다.

가능한 "공통"솔루션 (p = 접두사 및 s = 접미사) :

  1. 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
    

    찬성 :

    • "공통"이므로 "충분히 양호"가 "최고"보다 낫습니다.
    • 이상한 문자가 없습니다.
    • "날짜 / 시간 얼룩"과 다른 모든 것을 쉽게 구별 할 수 있습니다.

    단점 :

    • 날짜 전용 버전은 읽기가 쉽지 않으며 시간을 포함하면 눈이 번지고 초도 "lol"입니다.
    • TZ를 가정합니다.
  2. 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
    

    찬성 :

    • 공백이 없습니다.
    • TZ를 고려합니다.
    • 인간이 읽는 것이 "나쁘지 않다"(날짜 만 v. good).
    • $ (date --iso = {hours, minutes, seconds})까지 생성 가능

    단점 :

    • scp / tar / 등 ':'문자를 좋아하지 않습니다.
    • '정상적인'사람들이 'T'가 무엇인지 WTF를 보는 데 약간의 시간이 필요합니다.
    • 많은 '-'문자
  3. 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
    

    찬성 :

    • TZ를 고려합니다.
    • "모든 인간"이 쉽게 읽을 수 있습니다.
    • 접두사 / 접미사와 날짜 / 시간을 구별 할 수 있습니다.
    • 위의 일부는 $ (date --iso = {hours, seconds})로 생성 할 수 있습니다

    단점 :

    • 시간 버전에 공백이 있습니다 (즉, 모든 코드가 싫어합니다).
    • scp / tar / 등 ':'문자를 좋아하지 않습니다.
  4. 나는 하이픈을 좋아한다 :

    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
    

    찬성 :

    • 기본적으로 약간 더 좋은 syslog / etc. 다른.

    단점 :

    • 많은 '-'문자
    • TZ를 가정합니다.
  5. 확장명을 가진 하이픈을 좋아합니다.

    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
    

    찬성 :

    • 기본적으로 약간 더 좋은 "하이픈 사랑"변형입니다.
    • 이상한 문자가 없습니다.
    • 접두사 / 접미사와 날짜 / 시간을 구별 할 수 있습니다.

    단점 :

    • '.'사용 여기서는 다소 비 전통적입니다.
    • TZ를 가정합니다.

... 따라서 누구나 선호와 이유를 제시하고 싶거나 하나 이상을 원합니다 (예 : 기계를 로컬로 유지하는 것이 95 % 이상이면 TZ는 신경 쓰지 않지만 그렇지 않은 경우 많이 신경 쓰십시오).

또는 분명히 위 목록에없는 내용입니다.


참조하시기 바랍니다 serverfault.com/faq#dontask
존 Gardeniers

당신이 묻는 실제 질문은 무엇입니까?
Ward-Monica Monica 복원

내 질문이 "좋아하는 XYZ 란 무엇입니까?"보다는 "XYZ를 수행하는 가장 좋은 방법"이라고 생각했습니다.
James Antill

답변:


19
  1. 표준에 가장 가까운 ISO 8601 형식을 최대한 준수해야합니다.
  2. 'T'는 실제로 그것을 없애는 것을 보증하기에 걸림돌이 충분하지 않습니다.
  3. ':'는 잠재적으로 살인자이므로 피해야합니다.
  4. 다른 사람의 답변에 언급 된 이유로 UTC (또는 'Z'시간)를 사용해야합니다.
  5. ISO 8601에는 UTC ( 'Z'시간)를 사용하는 형식이 포함되어야합니다.
  6. ISO 8601에는 ':'문자를 사용하지 않는 형식이 포함되어 있어야합니다.

따라서 ... '최상의'날짜-시간 형식 샘플 :

  1. 20120317T1748Z

    • ISO 8601에 따른 100 %
    • 영숫자 만 (매우 sysadmin 친화적)
    • 가장 빠르지는 않지만 평신도가 읽을 수있는 것
  2. 2012-03-17T1748Z

    • 날짜 부분은 ISO 8601에 따릅니다
    • 시간 부분은 ISO 8601에 따릅니다
    • 날짜와 시간 사이의 전환은 ISO 8601에 따릅니다
    • ISO 8601 '확장'형식 (하이픈이있는 날짜, 콜론이있는 시간)을 ISO 8601 '기본'형식 (하이픈이없는 날짜, 콜론이없는 시간)과 혼합합니다.
    • '-'문자를 추가합니다 (vs 1).
    • 평신도가 읽기가 조금 쉬움 (1 절)
  3. 2012-03-17--1748Z

    • 날짜 부분은 ISO 8601에 따릅니다
    • 시간 부분은 ISO 8601에 따릅니다
    • 날짜와 시간 사이의 전환은 ISO 8601에 따르지 않습니다
    • ISO 8601 '확장'형식과 ISO 8601 '기본'형식을 혼합
    • 평신도가 읽기가 조금 쉬움 (1과 2)
    • 새로운 캐릭터 없음 (2 절)

나는 표준에 완전히 부합하기 때문에 1에 부분적으로 있지만 다른 것은 가깝습니다.

참고 : 물론 필요에 따라 초를 추가하십시오. ... 그렇습니다. 몇 초 (또는 몇 분)의 유무에 관계없이 모두 IAW ISO 8601입니다. :)


2

시간대를 포함하지 않고 표준시 만 사용합니다. 혼동이있을 경우 -UTC 접미사를 추가 할 수 있습니다. 시간대를 지정하면 누군가 시간대에 의존 할 수 있습니다. 또한 DST 변경 또는 DST 시프트가 일부 처리에 혼란을 주거나 DST 구성이 최신 상태가 아니기 때문에 일부 시스템에서 처리가 다른 이상한 경우가 있습니다. UTC는 항상 모든 곳에서 동일합니다.

하이픈을 사용하면 파일 데이터의 날짜 시간을 쉽게 식별 할 수 있다는 점에서 파일 이름을 더 읽기 쉽게 만든다고 생각합니다. 1 초 미만의 정밀도를 포함하려면 일반적으로 .nnnnn입니다.

개인적으로 T를 좋아하지 않습니다. 파일 이름에 콜론을 사용하면 다른 파일 시스템과의 상호 운용성에 영향을 줄 수 있습니다.


-1
  1. 나도 시간대를 포함하지 않을 것이다. 로그를 처리하는 스크립트 / 도구는 이에 대해 알고 있어야합니다. 또한 여름 / 겨울 시간 변경과 관련하여 항상 UTC로 서버를 고정하는 것이 좋습니다. 기본 서버 시간대와 실행중인 데이터베이스의 (변경되지 않은) 시간대 간의 갑작스러운 차이로 인해 두통이 발생할 수 있습니다.

  2. 로그 파일 이름 지정과 관련하여 많은 사람들이 그것을 좋아하지 않지만 간단하게 유지하고 싶습니다.

p-%s-type.log = p-1311116459-type.log

찬성 :

  • 공통 분모
  • 추가 스크립팅에 사용하기 매우 쉽습니다.

단점 :

  • 사람이 읽을 수 없음

어떤 이유로 든 동료가 수동으로 로그를 확인 해야하는 컴퓨터에서 매일이 회전을 사용 하여이 변형을 사용했습니다.

p-%Y-%m-%d-type.log = p-2011-07-20-type.log

친애하는

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.