EasyNTS增加定时删除/tmp文件夹多余文件的功能

EasyNTS 的主要作用就是解决异地视频共享/组网的需求,网页对域名进行添加映射时,添加成功后会生成一个外网访问地址,在浏览器中输入外网访问地址,即可查看内网应用。在一个 EasyNTS 现场,用户反馈 EasyNTS 在 tmp 文件夹存在大量的日志,导致机器卡死的问题。以下为存在的日志: 经过查看源代码分析,发现 /tmp 目录中的文件只有 .ini 是程序主动生成的,其余均未生成,因此研究 /tmp 目录的作用。经过分析,在程序运行过程中,操作系统会将对应的日志存储在 /tmp 目录下,导致日志变多。操作系统的定时删除功能有时候没有开启。 增加定时删除 tmp 文件夹下文件的功能,代码如下: // 启动清空 tmp 目录下的日志功能 func StartCleanTmpLogs() { // 如果是 linux 系统,则启动该功能 if runtime.GOOS == "linux" { scheduler := gocron.NewScheduler(time.Local) hour := ntcutil.ConfDefaultValue("sys_clean_tmp", "2") value, err := strconv.Atoi(hour) if err != nil { log.Error("读取时间错误, err = %s", err.Error()) return } if value > 0 { //scheduler.Every(hour).Hour().Do(cleanTmpLogs) scheduler.Every(value).Milliseconds().Do(cleanTmpLogs) } //scheduler.Every(5).Milliseconds().Do(cleanTmpLogs) scheduler.StartAsync() } } // 清空 tmp 日志 func cleanTmpLogs() { defer func() { if err := recover(); err != nil { log.Error(fmt.Sprintf("InspectionRecordPlan panic %s\n", err)) log.Error(fmt.Sprintln(string(debug.Stack()))) } }() rootDir := "/tmp" //rootDir := "C:\\Users\\sam\\Desktop\\nts1" files, err := ioutil.ReadDir(rootDir) if err != nil { log.Error("读取 /tmp/ 文件失败, err = %s", err.Error()) return } for _, infile := range files { if !infile.IsDir() { fileName := infile.Name() // 如果以 easyntd 开头,并且不是以 .ini 结尾则删除 if strings.HasPrefix(fileName, "easyntd") && !strings.HasSuffix(fileName, ".ini") { filePath := filepath.Join(rootDir, fileName) os.Remove(filePath) } } } } 以上 cleanTmpLogs 为查找 /tmp 文件夹下的所有文件,如果查找到以 easyntd 开头,并且不是以 .ini 结尾的文件则删除该文件。 StartCleanTmpLogs 为定时运行 cleanTmpLogs 的方法,默认 2 小时运行一次 cleanTmpLogs 函数。

暗黑源码库包揽全网大多数网站源码教程,提供小程序、公众号、APP、H5、商城、支付、游戏、区块链、直播、影音、小说等源码教程,注册会员可免费学习交流。
用户必须遵守《计算机软件保护条例(2013修订)》第十七条:为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬。鉴于此条例,用户从本平台下载的全部源码(软件)教程仅限学习研究,未经版权归属者授权不得商用,若因商用引起的版权纠纷,一切责任均由使用者自行承担,本平台所属公司及其雇员不承担任何法律责任。
暗黑源码库 » EasyNTS增加定时删除/tmp文件夹多余文件的功能
赞助VIP 享更多特权,立即登录下载海量资源
喜欢我嘛?喜欢就按“ctrl+D”收藏我吧!♡