diff --git a/agent/app/service/device_clean.go b/agent/app/service/device_clean.go index bef3b3629b6c..9db823a26b55 100644 --- a/agent/app/service/device_clean.go +++ b/agent/app/service/device_clean.go @@ -382,6 +382,7 @@ func loadBackupTree(fileOp fileUtils.FileOp) []dto.CleanTree { treeData = append(treeData, loadUnknownDbs(fileOp, recordMap)) treeData = append(treeData, loadUnknownWebsites(fileOp, recordMap)) treeData = append(treeData, loadUnknownSnapshot(fileOp)) + treeData = append(treeData, loadUnknownWebsiteLog(fileOp, recordMap)) return treeData } @@ -506,6 +507,44 @@ func loadUnknownSnapshot(fileOp fileUtils.FileOp) dto.CleanTree { return treeData } +func loadUnknownWebsiteLog(fileOp fileUtils.FileOp, recordMap map[string][]string) dto.CleanTree { + treeData := dto.CleanTree{ + ID: uuid.NewString(), + Label: "unknown_website_log", + IsCheck: false, + IsRecommend: true, + Type: "unknown_backup", + } + dir := path.Join(global.Dir.LocalBackupDir, "log/website") + entries, _ := os.ReadDir(dir) + for _, entry := range entries { + if !entry.IsDir() { + continue + } + dirName := entry.Name() + itemName := fmt.Sprintf("log/website/%s", dirName) + if _, ok := recordMap[itemName]; !ok { + dirPath := path.Join(dir, dirName) + itemSize, _ := fileOp.GetDirSize(dirPath) + childData := dto.CleanTree{ + ID: uuid.NewString(), + Label: dirName, + IsCheck: true, + IsRecommend: true, + Name: dirPath, + Type: "unknown_backup", + Size: uint64(itemSize), + } + treeData.Size += uint64(itemSize) + treeData.Children = append(treeData.Children, childData) + } + } + if treeData.Size > 0 { + treeData.IsCheck = true + } + return treeData +} + func loadFileOrDirWithExclude(fileOp fileUtils.FileOp, index uint, dir string, rootTree *dto.CleanTree, excludes []string) error { index++ entries, err := os.ReadDir(dir) diff --git a/frontend/src/lang/modules/en.ts b/frontend/src/lang/modules/en.ts index 85af4f084c3f..8b78ff1c3462 100644 --- a/frontend/src/lang/modules/en.ts +++ b/frontend/src/lang/modules/en.ts @@ -2235,6 +2235,7 @@ const message = { buildCache: 'Container Build Cache', appTmpDownload: 'App temporary download file', + unknownWebsiteLog: 'Unlinked website log backup file', }, app: { app: 'Application | Applications', diff --git a/frontend/src/lang/modules/es-es.ts b/frontend/src/lang/modules/es-es.ts index 41685435a993..79cf8eb72864 100644 --- a/frontend/src/lang/modules/es-es.ts +++ b/frontend/src/lang/modules/es-es.ts @@ -2248,6 +2248,7 @@ const message = { buildCache: 'Caché de build de contenedores', appTmpDownload: 'Archivo de descarga temporal de la aplicación', + unknownWebsiteLog: 'Archivo de respaldo de registro de sitio web no vinculado', }, app: { app: 'Aplicación | Aplicaciones', diff --git a/frontend/src/lang/modules/ja.ts b/frontend/src/lang/modules/ja.ts index 7910bd62bd85..b3d74fe9c076 100644 --- a/frontend/src/lang/modules/ja.ts +++ b/frontend/src/lang/modules/ja.ts @@ -2155,6 +2155,7 @@ const message = { buildCache: 'コンテナビルドキャッシュ', appTmpDownload: 'Archivo de descarga temporal de la aplicación', + unknownWebsiteLog: '未関連ウェブサイトログバックアップファイル', }, app: { app: 'アプリケーション|アプリケーション', diff --git a/frontend/src/lang/modules/ko.ts b/frontend/src/lang/modules/ko.ts index 9d7026469234..ecbf24b1a335 100644 --- a/frontend/src/lang/modules/ko.ts +++ b/frontend/src/lang/modules/ko.ts @@ -2119,6 +2119,7 @@ const message = { buildCache: '컨테이너 빌드 캐시', appTmpDownload: '앱 임시 다운로드 파일', + unknownWebsiteLog: '연결되지 않은 웹사이트 로그 백업 파일', }, app: { app: '애플리케이션 | 애플리케이션들', diff --git a/frontend/src/lang/modules/ms.ts b/frontend/src/lang/modules/ms.ts index 039e57784f27..02444eb9a6b0 100644 --- a/frontend/src/lang/modules/ms.ts +++ b/frontend/src/lang/modules/ms.ts @@ -2214,6 +2214,7 @@ const message = { buildCache: 'Cache Pembinaan Kontena', appTmpDownload: 'Fail muat turun sementara aplikasi', + unknownWebsiteLog: 'Fail sandaran log laman web tidak dikaitkan', }, app: { app: 'Aplikasi | Aplikasi', diff --git a/frontend/src/lang/modules/pt-br.ts b/frontend/src/lang/modules/pt-br.ts index cac1b80acffb..4c7ed258e338 100644 --- a/frontend/src/lang/modules/pt-br.ts +++ b/frontend/src/lang/modules/pt-br.ts @@ -2208,6 +2208,7 @@ const message = { buildCache: 'Cache de construção do container', appTmpDownload: 'Arquivo de download temporário do aplicativo', + unknownWebsiteLog: 'Fail sandaran log laman web tidak dikaitkan', }, app: { app: 'Aplicativo | Aplicativos', diff --git a/frontend/src/lang/modules/ru.ts b/frontend/src/lang/modules/ru.ts index 019c03e3ae55..0476332c0004 100644 --- a/frontend/src/lang/modules/ru.ts +++ b/frontend/src/lang/modules/ru.ts @@ -2203,6 +2203,7 @@ const message = { buildCache: 'Кэш сборки контейнеров', appTmpDownload: 'Временный файл загрузки приложения', + unknownWebsiteLog: 'Arquivo de backup de log de site não vinculado', }, app: { app: 'Приложение | Приложения', diff --git a/frontend/src/lang/modules/tr.ts b/frontend/src/lang/modules/tr.ts index 7e7385d8b7a2..7c722058dba0 100644 --- a/frontend/src/lang/modules/tr.ts +++ b/frontend/src/lang/modules/tr.ts @@ -2260,6 +2260,7 @@ const message = { buildCache: 'Konteyner Oluşturma Önbelleği', appTmpDownload: 'Uygulama geçici indirme dosyası', + unknownWebsiteLog: 'Bağlantısız web sitesi günlük yedekleme dosyası', }, app: { app: 'Uygulama | Uygulamalar', diff --git a/frontend/src/lang/modules/zh-Hant.ts b/frontend/src/lang/modules/zh-Hant.ts index 36279f04963c..b6e0f5fb1342 100644 --- a/frontend/src/lang/modules/zh-Hant.ts +++ b/frontend/src/lang/modules/zh-Hant.ts @@ -2084,6 +2084,7 @@ const message = { buildCache: '容器建置快取', appTmpDownload: '應用程式暫存下載檔案', + unknownWebsiteLog: '未關聯網站日誌備份檔案', }, app: { app: '應用', diff --git a/frontend/src/lang/modules/zh.ts b/frontend/src/lang/modules/zh.ts index 0d86660c0e59..7196a15bdb96 100644 --- a/frontend/src/lang/modules/zh.ts +++ b/frontend/src/lang/modules/zh.ts @@ -2081,6 +2081,7 @@ const message = { buildCache: '构建缓存', appTmpDownload: '应用临时下载文件', + unknownWebsiteLog: '未关联网站日志备份文件', }, app: { app: '应用', diff --git a/frontend/src/views/toolbox/clean/index.vue b/frontend/src/views/toolbox/clean/index.vue index 944405ca3524..2dee9c138fdc 100644 --- a/frontend/src/views/toolbox/clean/index.vue +++ b/frontend/src/views/toolbox/clean/index.vue @@ -430,6 +430,7 @@ const loadSubmitCheck = (data: any) => { item.label !== 'unknown_database' && item.label !== 'unknown_website' && item.label !== 'unknown_snapshot' && + item.label !== 'unknown_website_log' && item.type !== 'app_tmp_download' ) { submitCleans.value.push({ treeType: item.type, name: item.name, size: item.size }); @@ -636,6 +637,8 @@ function load18n(label: string) { return i18n.global.t('logs.websiteLog'); case 'app_tmp_download': return i18n.global.t('clean.appTmpDownload'); + case 'unknown_website_log': + return i18n.global.t('clean.unknownWebsiteLog'); default: return label; }