diff --git a/web/job/clear_logs_job.go b/web/job/clear_logs_job.go index 70967657b..c02911311 100644 --- a/web/job/clear_logs_job.go +++ b/web/job/clear_logs_job.go @@ -19,29 +19,22 @@ func (j *ClearLogsJob) Run() { logFiles := []string{xray.GetIPLimitLogPath(), xray.GetIPLimitBannedLogPath(), xray.GetAccessPersistentLogPath()} logFilesPrev := []string{xray.GetIPLimitBannedPrevLogPath(), xray.GetAccessPersistentPrevLogPath()} - // clear old previous logs - for i := 0; i < len(logFilesPrev); i++ { - if err := os.Truncate(logFilesPrev[i], 0); err != nil { - logger.Warning("clear logs job err:", err) - } - } - // clear log files and copy to previous logs for i := 0; i < len(logFiles); i++ { if i > 0 { // copy to previous logs - logFilePrev, err := os.OpenFile(logFilesPrev[i-1], os.O_CREATE|os.O_APPEND|os.O_WRONLY, 0644) + logFilePrev, err := os.OpenFile(logFilesPrev[i-1], os.O_CREATE|os.O_TRUNC|os.O_WRONLY, 0644) if err != nil { logger.Warning("clear logs job err:", err) } - logFile, err := os.Open(logFiles[i]) - if err != nil { - logger.Warning("clear logs job err:", err) - } - - _, err = io.Copy(logFilePrev, logFile) - if err != nil { + logFile, err := os.OpenFile(logFiles[i], os.O_CREATE|os.O_RDONLY, 0644) + if err == nil { + _, err = io.Copy(logFilePrev, logFile) + if err != nil { + logger.Warning("clear logs job err:", err) + } + } else { logger.Warning("clear logs job err:", err) }