临时目录或者日志目录的过期或者无用的文件,需要写个程序定时清除下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()