临时目录或者日志目录的过期或者无用的文件,需要写个程序定时清除下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
好像看了一些奇怪的东西