Kaynağa Gözat

test: disk used

HeWang 7 ay önce
ebeveyn
işleme
87a8577288

+ 4 - 2
aarch64/pjibot_guide/common/config/c_cloud.go

@@ -39,9 +39,11 @@ type RosStruct struct {
 }
 
 type DiskStruct struct {
-	Name string `yaml:"name"`
-	Used uint64 `yaml:"used"`
+	Name string   `yaml:"name"`
+	Used uint64   `yaml:"used"`
+	Path []string `yaml:"path"`
 }
+
 type TriggerStruct struct {
 	Label  string   `yaml:"label"`
 	Topics []string `yaml:"topics"`

+ 3 - 0
aarch64/pjibot_guide/引导机器人默认配置文件-cloud-config.yaml

@@ -19,6 +19,9 @@ config-refresh-interval: 60
 disk:
   name: /dev/mmcblk0p8 # 磁盘名称
   used: 20000000000 # 磁盘占用阈值,单位bytes
+  path:
+    - /root/cicv-data-closedloop
+    - /root/pjirobot/data/cicv-data-closedloop
 data-dir:
   src: /root/pjirobot/ # 需要额外采集的 data 目录
   src-sub:

+ 2 - 2
common/util/u_resource.go

@@ -138,15 +138,15 @@ func GetDiskUsed(filesystem string) (uint64, error) {
 	return parseUint, nil
 }
 
+// GetDirectoryDiskUsed 获取目录列表的总大小
 func GetDirectoryDiskUsed(directories []string) (uint64, error) {
-	directories = append(directories, "/root/pjirobot/data/cicv-data-closedloop/data/")
 	cmd := exec.Command("du", "-s", directories[0])
 	output, err := cmd.CombinedOutput()
 	if err != nil {
 		return 0, err
 	}
 	lines := strings.Split(string(output), "\n")
-	fields := strings.Fields(lines[1])
+	fields := strings.Fields(lines[0])
 	parseUint, err := strconv.ParseUint(fields[0], 10, 64)
 	fmt.Println("parseUint", parseUint)
 	if err != nil {

+ 13 - 8
tools/disk/main/main.go

@@ -8,24 +8,29 @@ import (
 )
 
 func GetDirectoryDiskUsed(directories []string) (uint64, error) {
-	cmd := exec.Command("du", "-s", directories[0])
+	cmd := exec.Command("du", "-s", strings.Join(directories, " "))
 	output, err := cmd.CombinedOutput()
 	if err != nil {
 		return 0, err
 	}
 	lines := strings.Split(string(output), "\n")
 	fmt.Println(lines)
-	fields := strings.Fields(lines[0])
-	parseUint, err := strconv.ParseUint(fields[0], 10, 64)
-	fmt.Println("parseUint", parseUint)
-	if err != nil {
-		return 0, err
+	sum := uint64(0)
+	for _, line := range lines {
+		fields := strings.Fields(line)
+		parseUint, err := strconv.ParseUint(fields[0], 10, 64)
+		fmt.Println("parseUint", parseUint)
+		if err != nil {
+			return 0, err
+		}
+		sum += parseUint
 	}
-	return parseUint, nil
+
+	return sum, nil
 }
 
 func main() {
-	diskUsed, err := GetDirectoryDiskUsed([]string{"/root/pjirobot/data/cicv-data-closedloop/data/"})
+	diskUsed, err := GetDirectoryDiskUsed([]string{"/root/cicv-data-closedloop", "/root/pjirobot/data/cicv-data-closedloop"})
 	if err != nil {
 		return
 	}