Files
windows_lock_go/app/jobs/clear_job.go
hucan 5d4274f216 1、新增 记录 进程搜索
2、增加未绑定分组搜索
3、缺失机器号提示
2025-05-07 16:35:11 +08:00

82 lines
1.6 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package jobs
import (
"fmt"
"os"
"path/filepath"
"time"
"github.com/go-admin-team/go-admin-core/logger"
"github.com/go-admin-team/go-admin-core/sdk"
"github.com/go-admin-team/go-admin-core/sdk/config"
"gorm.io/gorm"
)
type ClearLogJob struct {
}
// 删除过期日志
func (t ClearLogJob) Exec(arg interface{}) error {
str := time.Now().Format(timeFormat) + " [INFO] JobCore ClearLogJob exec success"
defer logger.Info(str)
var db *gorm.DB
for _, item := range sdk.Runtime.GetDb() {
db = item
break
}
ClearLogs(db)
return nil
}
func ClearLogs(orm *gorm.DB) {
dir := config.LoggerConfig.Path
if dir == "" {
dir = "temp/logs"
}
// 检查文件夹是否存在
if _, err := os.Stat(dir); os.IsNotExist(err) {
fmt.Printf("Directory %s does not exist, skipping cleanup.\n", dir)
return
}
// 获取当前时间
now := time.Now()
expirateDay := 2
// 遍历指定文件夹中的所有文件
err := filepath.Walk(dir, func(path string, info os.FileInfo, err error) error {
if err != nil {
return err
}
// 只处理普通文件
if !info.IsDir() {
// 获取文件的修改时间
modTime := info.ModTime()
// 计算文件修改时间与当前时间的差值
duration := now.Sub(modTime)
// 如果文件超过7天则删除
if duration > time.Duration(expirateDay)*24*time.Hour {
fmt.Printf("Deleting file: %s (Last modified: %s)\n", path, modTime)
err := os.Remove(path)
if err != nil {
return err
}
}
}
return nil
})
if err != nil {
fmt.Printf("Error walking the path %v: %v\n", dir, err)
}
}