临时目录或者日志目录的过期或者无用的文件,需要写个程序定时清除下N天之前的旧文件, 保证服务器硬盘不那么容易爆满。
walkFiles 历遍文件,getCreationTime 获取文件创建时间, removeFile tryremoveFile 等来自os模块。
日期时间的运算,需要用到times模块,getCreationTime 返回的是Time类型,indays now()是datetime类型。需要加上local()转换成datetime类型。

import os
import times
import strformat
import strutils

const tmpath = "/data/tmp/"
const usage = """

删除 /data/tmp/ 目录下的过期文件。

Usage: cleartmp days

参数默认等于:
cleartmp 30

删除180天以前的文件:
cleartmp 180
"""
echo "---------------------"
echo usage
echo "当前时间:" & $now()

proc cleartmp(): int {.discardable.} =

    var day = 30
    if paramCount() == 1:
        day = parseInt(paramStr(1))

    echo fmt"输入的天数: {day}"

    for f in walkFiles(tmpath & "*"):
        var fctime = getCreationTime(f).local()

        if indays(now() - fctime) > day:
            result.inc
            removeFile(f)

    echo fmt"清理的文件数量:{result}"
    echo "---------------------\n\n"
 
cleartmp()

代码是跨平台的,编译得到可执行文件:
nim c -d:release cleartmp.nim