mirror of
https://github.com/1Panel-dev/1Panel.git
synced 2025-01-19 08:19:15 +08:00
fix: 概览页磁盘显示过滤规则修改 (#458)
This commit is contained in:
parent
d71e2a74b4
commit
85fc07c900
@ -2,9 +2,11 @@ package service
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/1Panel-dev/1Panel/backend/app/dto"
|
"github.com/1Panel-dev/1Panel/backend/app/dto"
|
||||||
|
"github.com/1Panel-dev/1Panel/backend/utils/cmd"
|
||||||
"github.com/shirou/gopsutil/v3/cpu"
|
"github.com/shirou/gopsutil/v3/cpu"
|
||||||
"github.com/shirou/gopsutil/v3/disk"
|
"github.com/shirou/gopsutil/v3/disk"
|
||||||
"github.com/shirou/gopsutil/v3/host"
|
"github.com/shirou/gopsutil/v3/host"
|
||||||
@ -141,29 +143,54 @@ func (u *DashboardService) LoadCurrentInfo(ioOption string, netOption string) *d
|
|||||||
return ¤tInfo
|
return ¤tInfo
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type diskInfo struct {
|
||||||
|
Type string
|
||||||
|
Mount string
|
||||||
|
Device string
|
||||||
|
}
|
||||||
|
|
||||||
func loadDiskInfo() []dto.DiskInfo {
|
func loadDiskInfo() []dto.DiskInfo {
|
||||||
var datas []dto.DiskInfo
|
var datas []dto.DiskInfo
|
||||||
parts, err := disk.Partitions(false)
|
stdout, err := cmd.Exec("df -hT -P|grep '/'|grep -v tmpfs|grep -v 'snap/core'|grep -v udev")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return datas
|
return datas
|
||||||
}
|
}
|
||||||
|
lines := strings.Split(stdout, "\n")
|
||||||
|
|
||||||
|
var mounts []diskInfo
|
||||||
var excludes = []string{"/mnt/cdrom", "/boot", "/boot/efi", "/dev", "/dev/shm", "/run/lock", "/run", "/run/shm", "/run/user"}
|
var excludes = []string{"/mnt/cdrom", "/boot", "/boot/efi", "/dev", "/dev/shm", "/run/lock", "/run", "/run/shm", "/run/user"}
|
||||||
for i := 0; i < len(parts); i++ {
|
for _, line := range lines {
|
||||||
|
fields := strings.Fields(line)
|
||||||
|
if len(fields) < 7 {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
if fields[1] == "tmpfs" {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
if strings.Contains(fields[2], "M") || strings.Contains(fields[2], "K") {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
if strings.Contains(fields[6], "docker") {
|
||||||
|
continue
|
||||||
|
}
|
||||||
isExclude := false
|
isExclude := false
|
||||||
for _, exclude := range excludes {
|
for _, exclude := range excludes {
|
||||||
if parts[i].Mountpoint == exclude {
|
if exclude == fields[6] {
|
||||||
isExclude = true
|
isExclude = true
|
||||||
break
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if isExclude {
|
if isExclude {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
state, _ := disk.Usage(parts[i].Mountpoint)
|
mounts = append(mounts, diskInfo{Type: fields[1], Device: fields[0], Mount: fields[6]})
|
||||||
|
}
|
||||||
|
|
||||||
|
for i := 0; i < len(mounts); i++ {
|
||||||
|
state, _ := disk.Usage(mounts[i].Mount)
|
||||||
var itemData dto.DiskInfo
|
var itemData dto.DiskInfo
|
||||||
itemData.Path = parts[i].Mountpoint
|
itemData.Path = mounts[i].Mount
|
||||||
itemData.Type = parts[i].Fstype
|
itemData.Type = mounts[i].Type
|
||||||
itemData.Device = parts[i].Device
|
itemData.Device = mounts[i].Device
|
||||||
itemData.Total = state.Total
|
itemData.Total = state.Total
|
||||||
itemData.Free = state.Free
|
itemData.Free = state.Free
|
||||||
itemData.Used = state.Used
|
itemData.Used = state.Used
|
||||||
|
Loading…
x
Reference in New Issue
Block a user