diff --git a/agent/app/api/v2/logs.go b/agent/app/api/v2/logs.go index c1b88c877..1058a79cd 100644 --- a/agent/app/api/v2/logs.go +++ b/agent/app/api/v2/logs.go @@ -2,7 +2,6 @@ package v2 import ( "github.com/1Panel-dev/1Panel/agent/app/api/v2/helper" - "github.com/1Panel-dev/1Panel/agent/app/dto" "github.com/gin-gonic/gin" ) @@ -21,24 +20,3 @@ func (b *BaseApi) GetSystemFiles(c *gin.Context) { helper.SuccessWithData(c, data) } - -// @Tags Logs -// @Summary Load system logs -// @Success 200 {string} data -// @Security ApiKeyAuth -// @Security Timestamp -// @Router /logs/system [post] -func (b *BaseApi) GetSystemLogs(c *gin.Context) { - var req dto.OperationWithName - if err := helper.CheckBindAndValidate(&req, c); err != nil { - return - } - - data, err := logService.LoadSystemLog(req.Name) - if err != nil { - helper.InternalServer(c, err) - return - } - - helper.SuccessWithData(c, data) -} diff --git a/agent/app/service/backup.go b/agent/app/service/backup.go index 4f5200786..34141349d 100644 --- a/agent/app/service/backup.go +++ b/agent/app/service/backup.go @@ -147,7 +147,7 @@ func (u *BackupService) Create(req dto.BackupOperate) error { } backup.Credential = string(itemCredential) - if req.Type == constant.OneDrive || req.Type == constant.GoogleDrive { + if req.Type == constant.OneDrive || req.Type == constant.GoogleDrive || req.Type == constant.ALIYUN { if err := loadRefreshTokenByCode(&backup); err != nil { return err } @@ -247,7 +247,7 @@ func (u *BackupService) Update(req dto.BackupOperate) error { global.Dir.LocalBackupDir = newBackup.BackupPath } - if newBackup.Type == constant.OneDrive || newBackup.Type == constant.GoogleDrive { + if newBackup.Type == constant.OneDrive || newBackup.Type == constant.GoogleDrive || newBackup.Type == constant.ALIYUN { if err := loadRefreshTokenByCode(&newBackup); err != nil { return err } @@ -501,16 +501,19 @@ func loadRefreshTokenByCode(backup *model.BackupAccount) error { if err != nil { return err } - } else { + } + if backup.Type == constant.OneDrive { refreshToken, err = client.RefreshToken("authorization_code", "refreshToken", varMap) if err != nil { return err } } - delete(varMap, "code") + if backup.Type != constant.ALIYUN { + delete(varMap, "code") + varMap["refresh_token"] = refreshToken + } varMap["refresh_status"] = constant.StatusSuccess varMap["refresh_time"] = time.Now().Format(constant.DateTimeLayout) - varMap["refresh_token"] = refreshToken itemVars, err := json.Marshal(varMap) if err != nil { return fmt.Errorf("json marshal var map failed, err: %v", err) @@ -535,10 +538,9 @@ func loadBackupNamesByID(accountIDs string, downloadID uint) ([]string, string, var accounts []string var downloadAccount string for _, item := range list { - itemName := fmt.Sprintf("%s - %s", item.Type, item.Name) - accounts = append(accounts, itemName) + accounts = append(accounts, item.Name) if item.ID == downloadID { - downloadAccount = itemName + downloadAccount = item.Name } } return accounts, downloadAccount, nil diff --git a/agent/app/service/backup_record.go b/agent/app/service/backup_record.go index ecae836f3..12526bba7 100644 --- a/agent/app/service/backup_record.go +++ b/agent/app/service/backup_record.go @@ -176,26 +176,20 @@ func (u *BackupRecordService) ListAppRecords(name, detailName, fileName string) } func (u *BackupRecordService) ListFiles(req dto.OperateByID) []string { - var datas []string backupItem, client, err := NewBackupClientWithID(req.ID) if err != nil { - return datas + return []string{} } prefix := "system_snapshot" - if len(backupItem.BackupPath) != 0 { + if len(backupItem.BackupPath) != 0 { prefix = path.Join(backupItem.BackupPath, prefix) } files, err := client.ListObjects(prefix) if err != nil { global.LOG.Debugf("load files failed, err: %v", err) - return datas + return []string{} } - for _, file := range files { - if len(file) != 0 { - datas = append(datas, path.Base(file)) - } - } - return datas + return files } type backupSizeHelper struct { diff --git a/agent/app/service/clam.go b/agent/app/service/clam.go index 2fe2095b3..e1f0eda31 100644 --- a/agent/app/service/clam.go +++ b/agent/app/service/clam.go @@ -6,7 +6,6 @@ import ( "os" "os/exec" "path" - "path/filepath" "sort" "strconv" "strings" @@ -543,16 +542,15 @@ func StopAllCronJob(withCheck bool) bool { func loadFileByName(name string) []string { var logPaths []string pathItem := path.Join(global.Dir.DataDir, resultDir, name) - _ = filepath.Walk(pathItem, func(path string, info os.FileInfo, err error) error { - if err != nil { - return nil + fileItems, err := os.ReadDir(pathItem) + if err != nil { + return logPaths + } + for _, item := range fileItems { + if !item.IsDir() { + logPaths = append(logPaths, item.Name()) } - if info.IsDir() || info.Name() == name { - return nil - } - logPaths = append(logPaths, info.Name()) - return nil - }) + } return logPaths } func loadResultFromLog(pathItem string) dto.ClamLog { diff --git a/agent/app/service/logs.go b/agent/app/service/logs.go index 97def0acc..de27b8ba3 100644 --- a/agent/app/service/logs.go +++ b/agent/app/service/logs.go @@ -1,14 +1,11 @@ package service import ( - "fmt" "os" - "path" "sort" "strings" "time" - "github.com/1Panel-dev/1Panel/agent/buserr" "github.com/1Panel-dev/1Panel/agent/global" ) @@ -16,7 +13,6 @@ type LogService struct{} type ILogService interface { ListSystemLogFile() ([]string, error) - LoadSystemLog(name string) (string, error) } func NewILogService() ILogService { @@ -31,29 +27,30 @@ func (u *LogService) ListSystemLogFile() ([]string, error) { } listMap := make(map[string]struct{}) for _, item := range files { - if !item.IsDir() && strings.HasPrefix(item.Name(), "1Panel") { - if item.Name() == "1Panel.log" || item.Name() == "1Panel-Core.log" { - itemName := time.Now().Format("2006-01-02") - if _, ok := listMap[itemName]; ok { - continue - } - listMap[itemName] = struct{}{} - listFile = append(listFile, itemName) - continue - } - itemFileName := strings.TrimPrefix(item.Name(), "1Panel-Core-") - itemFileName = strings.TrimPrefix(itemFileName, "1Panel-") - itemFileName = strings.TrimSuffix(itemFileName, ".gz") - itemFileName = strings.TrimSuffix(itemFileName, ".log") - if len(itemFileName) == 0 { - continue - } - if _, ok := listMap[itemFileName]; ok { - continue - } - listMap[itemFileName] = struct{}{} - listFile = append(listFile, itemFileName) + if item.IsDir() || !strings.HasPrefix(item.Name(), "1Panel") { + continue } + if item.Name() == "1Panel.log" || item.Name() == "1Panel-Core.log" { + itemName := time.Now().Format("2006-01-02") + if _, ok := listMap[itemName]; ok { + continue + } + listMap[itemName] = struct{}{} + listFile = append(listFile, itemName) + continue + } + itemFileName := strings.TrimPrefix(item.Name(), "1Panel-Core-") + itemFileName = strings.TrimPrefix(itemFileName, "1Panel-") + itemFileName = strings.TrimSuffix(itemFileName, ".gz") + itemFileName = strings.TrimSuffix(itemFileName, ".log") + if len(itemFileName) == 0 { + continue + } + if _, ok := listMap[itemFileName]; ok { + continue + } + listMap[itemFileName] = struct{}{} + listFile = append(listFile, itemFileName) } if len(listFile) < 2 { return listFile, nil @@ -64,26 +61,3 @@ func (u *LogService) ListSystemLogFile() ([]string, error) { return listFile, nil } - -func (u *LogService) LoadSystemLog(name string) (string, error) { - if name == time.Now().Format("2006-01-02") { - name = "1Panel.log" - } else { - name = "1Panel-" + name + ".log" - } - filePath := path.Join(global.Dir.LogDir, name) - if _, err := os.Stat(filePath); err != nil { - fileGzPath := path.Join(global.Dir.LogDir, name+".gz") - if _, err := os.Stat(fileGzPath); err != nil { - return "", buserr.New("ErrHttpReqNotFound") - } - if err := handleGunzip(fileGzPath); err != nil { - return "", fmt.Errorf("handle ungzip file %s failed, err: %v", fileGzPath, err) - } - } - content, err := os.ReadFile(filePath) - if err != nil { - return "", err - } - return string(content), nil -} diff --git a/agent/app/service/ssh.go b/agent/app/service/ssh.go index 58125209b..8e25e742d 100644 --- a/agent/app/service/ssh.go +++ b/agent/app/service/ssh.go @@ -5,7 +5,6 @@ import ( "os" "os/user" "path" - "path/filepath" "sort" "strings" "time" @@ -288,25 +287,26 @@ func (u *SSHService) LoadLog(ctx *gin.Context, req dto.SearchSSHLog) (*dto.SSHLo var fileList []sshFileItem var data dto.SSHLog baseDir := "/var/log" - if err := filepath.Walk(baseDir, func(pathItem string, info os.FileInfo, err error) error { - if err != nil { - return err + fileItems, err := os.ReadDir(baseDir) + if err != nil { + return &data, err + } + for _, item := range fileItems { + if item.IsDir() || (!strings.HasPrefix(item.Name(), "secure") && !strings.HasPrefix(item.Name(), "auth")) { + continue } - if !info.IsDir() && (strings.HasPrefix(info.Name(), "secure") || strings.HasPrefix(info.Name(), "auth")) { - if !strings.HasSuffix(info.Name(), ".gz") { - fileList = append(fileList, sshFileItem{Name: pathItem, Year: info.ModTime().Year()}) - return nil - } - itemFileName := strings.TrimSuffix(pathItem, ".gz") - if _, err := os.Stat(itemFileName); err != nil && os.IsNotExist(err) { - if err := handleGunzip(pathItem); err == nil { - fileList = append(fileList, sshFileItem{Name: itemFileName, Year: info.ModTime().Year()}) - } + info, _ := item.Info() + itemPath := path.Join(baseDir, info.Name()) + if !strings.HasSuffix(item.Name(), ".gz") { + fileList = append(fileList, sshFileItem{Name: itemPath, Year: info.ModTime().Year()}) + continue + } + itemFileName := strings.TrimSuffix(itemPath, ".gz") + if _, err := os.Stat(itemFileName); err != nil && os.IsNotExist(err) { + if err := handleGunzip(itemPath); err == nil { + fileList = append(fileList, sshFileItem{Name: itemFileName, Year: info.ModTime().Year()}) } } - return nil - }); err != nil { - return nil, err } fileList = sortFileList(fileList) diff --git a/agent/router/ro_log.go b/agent/router/ro_log.go index 9ee852992..e6be0ffdf 100644 --- a/agent/router/ro_log.go +++ b/agent/router/ro_log.go @@ -12,7 +12,6 @@ func (s *LogRouter) InitRouter(Router *gin.RouterGroup) { baseApi := v2.ApiGroupApp.BaseApi { operationRouter.GET("/system/files", baseApi.GetSystemFiles) - operationRouter.POST("/system", baseApi.GetSystemLogs) operationRouter.POST("/tasks/search", baseApi.PageTasks) operationRouter.GET("/tasks/executing/count", baseApi.CountExecutingTasks) } diff --git a/agent/utils/cloud_storage/client/local.go b/agent/utils/cloud_storage/client/local.go index 1e6a30e62..852c5cefa 100644 --- a/agent/utils/cloud_storage/client/local.go +++ b/agent/utils/cloud_storage/client/local.go @@ -4,7 +4,6 @@ import ( "fmt" "os" "path" - "path/filepath" "github.com/1Panel-dev/1Panel/agent/utils/files" ) @@ -80,13 +79,14 @@ func (c localClient) ListObjects(prefix string) ([]string, error) { if _, err := os.Stat(prefix); err != nil { return files, nil } - if err := filepath.Walk(prefix, func(path string, info os.FileInfo, err error) error { - if !info.IsDir() { - files = append(files, info.Name()) + list, err := os.ReadDir(prefix) + if err != nil { + return files, err + } + for i := 0; i < len(list); i++ { + if !list[i].IsDir() { + files = append(files, list[i].Name()) } - return nil - }); err != nil { - return nil, err } return files, nil diff --git a/core/app/service/logs.go b/core/app/service/logs.go index 8e233f6a6..418862749 100644 --- a/core/app/service/logs.go +++ b/core/app/service/logs.go @@ -1,13 +1,6 @@ package service import ( - "os" - "path" - "path/filepath" - "sort" - "strings" - "time" - "github.com/1Panel-dev/1Panel/core/buserr" "github.com/1Panel-dev/1Panel/core/utils/common" geo2 "github.com/1Panel-dev/1Panel/core/utils/geo" @@ -26,7 +19,6 @@ type LogService struct{} const logs = "https://resource.fit2cloud.com/installation-log.sh" type ILogService interface { - ListSystemLogFile() ([]string, error) CreateLoginLog(operation model.LoginLog) error PageLoginLog(ctx *gin.Context, search dto.SearchLgLogWithPage) (int64, interface{}, error) @@ -44,39 +36,6 @@ func (u *LogService) CreateLoginLog(operation model.LoginLog) error { return logRepo.CreateLoginLog(&operation) } -func (u *LogService) ListSystemLogFile() ([]string, error) { - logDir := path.Join(global.CONF.Base.InstallDir, "1panel/log") - var files []string - if err := filepath.Walk(logDir, func(pathItem string, info os.FileInfo, err error) error { - if err != nil { - return err - } - if !info.IsDir() && strings.HasPrefix(info.Name(), "1Panel") { - if info.Name() == "1Panel.log" { - files = append(files, time.Now().Format("2006-01-02")) - return nil - } - itemFileName := strings.TrimPrefix(info.Name(), "1Panel-") - itemFileName = strings.TrimSuffix(itemFileName, ".gz") - itemFileName = strings.TrimSuffix(itemFileName, ".log") - files = append(files, itemFileName) - return nil - } - return nil - }); err != nil { - return nil, err - } - - if len(files) < 2 { - return files, nil - } - sort.Slice(files, func(i, j int) bool { - return files[i] > files[j] - }) - - return files, nil -} - func (u *LogService) PageLoginLog(ctx *gin.Context, req dto.SearchLgLogWithPage) (int64, interface{}, error) { options := []global.DBOption{ repo.WithOrderBy("created_at desc"), diff --git a/frontend/src/api/modules/log.ts b/frontend/src/api/modules/log.ts index cd7808097..22e2adf4f 100644 --- a/frontend/src/api/modules/log.ts +++ b/frontend/src/api/modules/log.ts @@ -13,9 +13,6 @@ export const getLoginLogs = (info: Log.SearchLgLog) => { export const getSystemFiles = () => { return http.get>(`/logs/system/files`); }; -export const getSystemLogs = (name: string) => { - return http.post(`/logs/system`, { name: name }); -}; export const cleanLogs = (param: Log.CleanLog) => { return http.post(`/core/logs/clean`, param); diff --git a/frontend/src/views/cronjob/cronjob/index.vue b/frontend/src/views/cronjob/cronjob/index.vue index d8aa073a6..d9fb1604a 100644 --- a/frontend/src/views/cronjob/cronjob/index.vue +++ b/frontend/src/views/cronjob/cronjob/index.vue @@ -100,9 +100,7 @@
- - {{ loadName(item) }} - + {{ item === 'localhost' ? $t('setting.LOCAL') : item }} { dialogRecordRef.value!.acceptParams(params); }; -const loadName = (from: any) => { - let items = from.split(' - '); - return i18n.global.t('setting.' + items[0]) + ' ' + items[1]; -}; - const buttons = [ { label: i18n.global.t('commons.button.handle'), diff --git a/frontend/src/views/cronjob/cronjob/operate/index.vue b/frontend/src/views/cronjob/cronjob/operate/index.vue index 4a2531c5a..5f944905a 100644 --- a/frontend/src/views/cronjob/cronjob/operate/index.vue +++ b/frontend/src/views/cronjob/cronjob/operate/index.vue @@ -420,11 +420,10 @@ @change="changeAccount" >
- + + {{ item.name }} + {{ item.type }} +
@@ -450,11 +449,10 @@
- + + {{ item.name }} + {{ item.type }} +
diff --git a/frontend/src/views/setting/backup-account/index.vue b/frontend/src/views/setting/backup-account/index.vue index ddcc7863f..c2f20633f 100644 --- a/frontend/src/views/setting/backup-account/index.vue +++ b/frontend/src/views/setting/backup-account/index.vue @@ -55,7 +55,7 @@