小编Jam*_*ill的帖子

包含时间戳的文件名的首选格式

众所周知,“unix”可以在文件中包含除 '/' 和 '\0' 之外的任何内容,但是系统管理员的偏好要小得多,主要是因为不喜欢空格作为输入...... ':' 和 '@' 等的特殊含义。

最近我看到了另一个案例,在文件名中使用了时间戳,在玩了一些不同的格式以使其“更好”之后,我想我会尝试找到一种“最佳实践”,但没有看到我认为的我只是在这里问一下,看看人们是怎么想的。

可能的“常见”解决方案(p=prefix 和 s=suffix):

  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
    
    Run Code Online (Sandbox Code Playgroud)

    优点:

    • 这是“常见的”,所以“足够好”可能比“最好”更好。
    • 没有奇怪的字符。
    • 易于将“日期/时间 blob”与其他所有内容区分开来。

    缺点:

    • 只有日期的版本不容易阅读,包括时间让我的眼睛流血,秒也只是“哈哈”。
    • 假设 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
    
    Run Code Online (Sandbox Code Playgroud)

    优点:

    • 没空间了。
    • 考虑到 TZ。
    • 人类阅读“还不错”(仅日期是 v. 好)。
    • 可以通过 $(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 …
    Run Code Online (Sandbox Code Playgroud)

linux unix filesystems log-files logrotate

21
推荐指数
1
解决办法
1万
查看次数

标签 统计

filesystems ×1

linux ×1

log-files ×1

logrotate ×1

unix ×1