臨時目錄或者日志目錄的過期或者無用的文件,需要寫個程序定時清除下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
好像看了一些奇怪的東西
浙公網安備 33010602011771號