package main import ( "fmt" "log" "strconv" "archive/zip" _ "embed" "net" "github.com/shirou/gopsutil/cpu" "github.com/shirou/gopsutil/mem" "github.com/shirou/gopsutil/disk" "os" "time" ) // 静态变量信息 var dotRels []byte = []byte(rels) var docPropsApp []byte = []byte(app) var docPropsCore []byte = []byte(core) var wordRels []byte = []byte(wordrels) var wordSettings []byte = []byte(wordSetting) var wordStyles []byte = []byte(wordStyle) var contentTypes []byte = []byte(contentType) // 文档结构体 type Part struct { data []byte name string } //主函数 func main() { parts := []Part{ {dotRels, "_rels/.rels"}, {docPropsApp, "docProps/app.xml"}, {docPropsCore, "docProps/core.xml"}, {wordRels, "word/_rels/document.xml.rels"}, {wordSettings, "word/settings.xml"}, {wordStyles, "word/styles.xml"}, {contentTypes, "[Content_Types].xml"}, } //文件名称 docFileName := time.Now().Format("20060102150405") // 创建压缩文件对象 zipFile, _ := os.Create("XXX平台运行健康检查-" + docFileName + ".docx") //是最终延时4秒 defer time.Sleep(4 * time.Second) //关闭对象方法 defer zipFile.Close() //创建流对象 zipWriter := zip.NewWriter(zipFile) //关闭流对象 defer zipWriter.Close() //遍历文件数组对象 for _, p := range parts { partFile, _ := zipWriter.Create(p.name) partFile.Write(p.data) } partFile, _ := zipWriter.Create("word/document.xml") //下面这个方法是在加内容 partFile.Write([]byte(docContesnts01 + GetCpuAndMemInfo() + docContesnts02 + GetDiskInfo() + docContesnts03 + GetNowDate() + docContesnts04)) // } //获取CPU和内存信息 func GetCpuAndMemInfo() string { var CpuAndMemInfo string = "" // ip 信息项目 描述值 状态 颜色 // cpu CpuAndMemInfo = CpuAndMemStringAppend(CpuAndMemInfo, GetCPUPercent()) // 内存总量 CpuAndMemInfo = CpuAndMemStringAppend(CpuAndMemInfo, GetMemTotal()) // 内存使用率 CpuAndMemInfo = CpuAndMemStringAppend(CpuAndMemInfo, GetMemPercent()) // 虚拟内存总量 CpuAndMemInfo = CpuAndMemStringAppend(CpuAndMemInfo, GetSwapMemTotal()) // 虚拟内存使用率 CpuAndMemInfo = CpuAndMemStringAppend(CpuAndMemInfo, GetSwapMemPercent()) return CpuAndMemInfo } //获取磁盘信息 func GetDiskInfo() string { fmt.Println("获取磁盘信息") //空字符串 var diskInfoSring string = "" //序号 盘符信息 使用率(%) 总空间(GB) 使用量(GB) 剩余量(GB) 状态 颜色 // var diskInfoStructs []DiskInfoStruct /// parts, err := disk.Partitions(true) if err != nil { fmt.Printf("get Partitions failed, err:%v\n", err) return "" } for key, part := range parts { var diskInfoStruct DiskInfoStruct fmt.Printf("part:%v\n", part.String()) // 盘符信息 diskInfoStruct.InfoDiskName = part.Mountpoint // 获取盘符具体信息 diskInfo, _ := disk.Usage(part.Mountpoint) // 使用率(%) diskInfoStruct.InfoDiskPercent = Float64ToString(diskInfo.UsedPercent) // 总空间(GB) // diskInfo. diskInfoStruct.InfoTotalSpace = Float64ToString(float64(diskInfo.Total) / 1024 / 1024 / 1024) // 使用量(GB) diskInfoStruct.InfoUsedSpace = Float64ToString(float64(diskInfo.Used) / 1024 / 1024 / 1024) // 剩余量(GB) diskInfoStruct.InfoFreeSpace = Float64ToString(float64(diskInfo.Free) / 1024 / 1024 / 1024) if diskInfo.UsedPercent > 80 { // 状态 diskInfoStruct.InfoStatus = "磁盘使用率超过80%" // 颜色 diskInfoStruct.InfoColor = "FF0000" } else { // 状态 diskInfoStruct.InfoStatus = "正常" // 颜色 diskInfoStruct.InfoColor = "00FF00" } fmt.Printf("disk info:used:%v free:%v\n", diskInfo.UsedPercent, diskInfo.Free) diskInfoSring = DiskStringAppend(diskInfoSring, strconv.Itoa(key+1), diskInfoStruct) } //获取存储盘信息 return diskInfoSring } //展示第一个数据的样式的结构体 type CpuAndMemStruct struct { InfoName string InfoDescValue string InfoStatus string InfoColor string } //展示第磁盘信息数据样式的结构体 type DiskInfoStruct struct { //序号 盘符信息 使用率(%) 总空间(GB) 使用量(GB) 剩余量(GB) 状态 颜色 InfoDiskName string InfoDiskPercent string InfoTotalSpace string InfoUsedSpace string InfoFreeSpace string InfoStatus string InfoColor string } // GetCPUPercent 获取CPU使用率 func GetCPUPercent() CpuAndMemStruct { var cpuPercentInfo CpuAndMemStruct cpuPercentInfo.InfoName = "cpu使用率(%)" fmt.Println(cpuPercentInfo.InfoName) percent, err := cpu.Percent(time.Second, false) if err != nil { log.Fatalln(err.Error()) cpuPercentInfo.InfoDescValue = "获取CPU使用率信息失败" cpuPercentInfo.InfoStatus = "获取CPU使用率信息失败" cpuPercentInfo.InfoColor = "FF0000" } else { if percent[0] > 80.0 { cpuPercentInfo.InfoStatus = "CPU使用率过高" cpuPercentInfo.InfoColor = "FF0000" } else { cpuPercentInfo.InfoStatus = "正常" cpuPercentInfo.InfoColor = "00FF00" } cpuPercentInfo.InfoDescValue = Float64ToString(percent[0]) } // fmt.Println(percent) fmt.Println(cpuPercentInfo.InfoDescValue) return cpuPercentInfo } // GetMemTotal 获取内存总量 func GetMemTotal() CpuAndMemStruct { var memTotalInfo CpuAndMemStruct memTotalInfo.InfoName = "内存总量(GB)" fmt.Println(memTotalInfo.InfoName) memInfo, err := mem.VirtualMemory() if err != nil { log.Fatalln(err.Error()) memTotalInfo.InfoDescValue = "" memTotalInfo.InfoColor = "FF0000" memTotalInfo.InfoStatus = "获取内存总量信息失败" } else { value := float64(memInfo.Total) / 1024 / 1024 / 1024 memTotalInfo.InfoDescValue = Float64ToString(value) memTotalInfo.InfoColor = "000000" memTotalInfo.InfoStatus = "/" } fmt.Println(memTotalInfo.InfoDescValue) return memTotalInfo } // GetMemPercent 获取内存使用率 func GetMemPercent() CpuAndMemStruct { var memPercentInfo CpuAndMemStruct memPercentInfo.InfoName = "内存使用率(%)" memInfo, err := mem.VirtualMemory() if err != nil { log.Fatalln(err.Error()) memPercentInfo.InfoDescValue = "" memPercentInfo.InfoStatus = "内存使用率信息获取失败" memPercentInfo.InfoColor = "FF0000" } else { if memInfo.UsedPercent > 80 { memPercentInfo.InfoStatus = "内存使用率过高" memPercentInfo.InfoColor = "FF0000" } else { memPercentInfo.InfoStatus = "正常" memPercentInfo.InfoColor = "00FF00" } memPercentInfo.InfoDescValue = Float64ToString(memInfo.UsedPercent) } fmt.Println(memPercentInfo.InfoName) fmt.Println(memPercentInfo.InfoDescValue) return memPercentInfo } // 获取虚拟内存总量信息 func GetSwapMemTotal() CpuAndMemStruct { var swapMemTotalInfo CpuAndMemStruct fmt.Println("虚拟内存总量(GB)") swapMemTotalInfo.InfoName = "虚拟内存总量(GB)" memInfo, err := mem.SwapMemory() if err != nil { log.Fatalln(err.Error()) swapMemTotalInfo.InfoDescValue = "" swapMemTotalInfo.InfoColor = "FF0000" swapMemTotalInfo.InfoStatus = "获取虚拟内存总量失败" fmt.Println("获取虚拟内存总量失败") } else { value := float64(memInfo.Total) / 1024 / 1024 / 1024 swapMemTotalInfo.InfoDescValue = Float64ToString(value) fmt.Println(swapMemTotalInfo.InfoDescValue) swapMemTotalInfo.InfoColor = "000000" swapMemTotalInfo.InfoStatus = "/" } return swapMemTotalInfo } // 获取虚拟内存使用率信息 func GetSwapMemPercent() CpuAndMemStruct { var swapMemPercentInfo CpuAndMemStruct fmt.Println("虚拟内存使用率(%)") swapMemPercentInfo.InfoName = "虚拟内存使用率(%)" memInfo, err := mem.SwapMemory() if err != nil { log.Fatalln(err.Error()) swapMemPercentInfo.InfoDescValue = "" swapMemPercentInfo.InfoStatus = "虚拟内存使用率信息获取失败" swapMemPercentInfo.InfoColor = "FF0000" } else { if memInfo.UsedPercent > 80 { swapMemPercentInfo.InfoStatus = "虚拟内存使用率过高" swapMemPercentInfo.InfoColor = "FF0000" } else { swapMemPercentInfo.InfoStatus = "正常" swapMemPercentInfo.InfoColor = "00FF00" } swapMemPercentInfo.InfoDescValue = Float64ToString(memInfo.UsedPercent) } fmt.Println(swapMemPercentInfo.InfoDescValue) return swapMemPercentInfo } // 获取当前巡检时间 巡检日期:2022年11月09日 func GetNowDate() string { return `巡检日期:` + time.Now().Format("2006") + `年` + time.Now().Format("01") + `月` + time.Now().Format("02") + `日` } //获取IP地址 func GetIPInfo() string { var iplist string = "" name, err := os.Hostname() if err != nil { fmt.Printf("Oops: %v\n", err) return iplist } addrs, err := net.LookupHost(name) if err != nil { fmt.Printf("Oops: %v\n", err) return iplist } for _, a := range addrs { if a == "::1" || a == "127.0.0.1" { continue } iplist = iplist + a + ", " } // 返回前截取一下字符串 x := len(iplist) - 3 return iplist[0:x] } // float64转string func Float64ToString(num float64) string { return strconv.FormatFloat(num, 'f', 2, 32) // return fmt.Sprintf("%f", num) } //合并CPU和内存信息XML字符串 func CpuAndMemStringAppend(CpuAndMemInfo string, cpuAndMemStruct CpuAndMemStruct) string { return CpuAndMemInfo + `<w:tr><w:tc><w:tcPr><w:tcW w:type="dxa" w:w="2160"/></w:tcPr><w:p><w:r><w:t>` + GetIPInfo() + `</w:t></w:r></w:p></w:tc><w:tc><w:tcPr><w:tcW w:type="dxa" w:w="2160"/></w:tcPr><w:p><w:r><w:t>` + cpuAndMemStruct.InfoName + `</w:t></w:r></w:p></w:tc><w:tc><w:tcPr><w:tcW w:type="dxa" w:w="2160"/></w:tcPr><w:p><w:r><w:t>` + cpuAndMemStruct.InfoDescValue + `</w:t></w:r></w:p></w:tc><w:tc><w:tcPr><w:tcW w:type="dxa" w:w="2160"/></w:tcPr><w:p><w:r><w:rPr><w:color w:val="` + cpuAndMemStruct.InfoColor + `"/><w:sz w:val="22"/></w:rPr><w:t>` + cpuAndMemStruct.InfoStatus + `</w:t></w:r></w:p></w:tc></w:tr>` } //合并磁盘信息XML字符串 func DiskStringAppend(diskInfoSring string, countNum string, diskInfoStruct DiskInfoStruct) string { return diskInfoSring + `<w:tr><w:tc><w:tcPr><w:tcW w:type="dxa" w:w="1234"/></w:tcPr><w:p><w:r><w:t>` + countNum + `</w:t></w:r></w:p></w:tc><w:tc><w:tcPr><w:tcW w:type="dxa" w:w="1234"/></w:tcPr><w:p><w:r><w:t>` + diskInfoStruct.InfoDiskName + `</w:t></w:r></w:p></w:tc><w:tc><w:tcPr><w:tcW w:type="dxa" w:w="1234"/></w:tcPr><w:p><w:r><w:t>` + diskInfoStruct.InfoDiskPercent + `</w:t></w:r></w:p></w:tc><w:tc><w:tcPr><w:tcW w:type="dxa" w:w="1234"/></w:tcPr><w:p><w:r><w:t>` + diskInfoStruct.InfoTotalSpace + `</w:t></w:r></w:p></w:tc><w:tc><w:tcPr><w:tcW w:type="dxa" w:w="1234"/></w:tcPr><w:p><w:r><w:t>` + diskInfoStruct.InfoUsedSpace + `</w:t></w:r></w:p></w:tc><w:tc><w:tcPr><w:tcW w:type="dxa" w:w="1234"/></w:tcPr><w:p><w:r><w:t>` + diskInfoStruct.InfoFreeSpace + `</w:t></w:r></w:p></w:tc><w:tc><w:tcPr><w:tcW w:type="dxa" w:w="1234"/></w:tcPr><w:p><w:r><w:rPr><w:color w:val="` + diskInfoStruct.InfoColor + `"/><w:sz w:val="22"/></w:rPr><w:t>` + diskInfoStruct.InfoStatus + `</w:t></w:r></w:p></w:tc></w:tr>` // return diskInfoString + `<w:tr><w:tc><w:tcPr><w:tcW w:type="dxa" w:w="2160"/></w:tcPr><w:p><w:r><w:t>` + GetIPInfo() + `</w:t></w:r></w:p></w:tc><w:tc><w:tcPr><w:tcW w:type="dxa" w:w="2160"/></w:tcPr><w:p><w:r><w:t>` + cpuAndMemStruct.InfoName + `</w:t></w:r></w:p></w:tc><w:tc><w:tcPr><w:tcW w:type="dxa" w:w="2160"/></w:tcPr><w:p><w:r><w:t>` + cpuAndMemStruct.InfoDescValue + `</w:t></w:r></w:p></w:tc><w:tc><w:tcPr><w:tcW w:type="dxa" w:w="2160"/></w:tcPr><w:p><w:r><w:rPr><w:color w:val="` + cpuAndMemStruct.InfoColor + `"/><w:sz w:val="22"/></w:rPr><w:t>` + cpuAndMemStruct.InfoStatus + `</w:t></w:r></w:p></w:tc></w:tr>` } const app = `<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <Properties xmlns="http://schemas.openxmlformats.org/officeDocument/2006/extended-properties" xmlns:vt="http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes" xmlns:xml="http://www.w3.org/XML/1998/namespace"><Company>www.ndxsl.cn</Company><LinksUpToDate>false</LinksUpToDate><Application>www.ndxsl.cn</Application><AppVersion>00.8000</AppVersion><DocSecurity>0</DocSecurity></Properties>` const core = `<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <cp:coreProperties xmlns="http://schemas.openxmlformats.org/package/2006/metadata/core-properties" xmlns:cp="http://schemas.openxmlformats.org/package/2006/metadata/core-properties" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:xml="http://www.w3.org/XML/1998/namespace"/>` const contentType = `<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types" xmlns:xml="http://www.w3.org/XML/1998/namespace"><Default Extension="xml" ContentType="application/xml"/><Default Extension="rels" ContentType="application/vnd.openxmlformats-package.relationships+xml"/><Default Extension="png" ContentType="image/png"/><Default Extension="jpeg" ContentType="image/jpeg"/><Default Extension="jpg" ContentType="image/jpg"/><Default Extension="wmf" ContentType="image/x-wmf"/><Override ContentType="application/vnd.openxmlformats-package.core-properties+xml" PartName="/docProps/core.xml"/><Override ContentType="application/vnd.openxmlformats-officedocument.extended-properties+xml" PartName="/docProps/app.xml"/><Override ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml" PartName="/word/document.xml"/><Override ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml" PartName="/word/settings.xml"/><Override ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml" PartName="/word/numbering.xml"/><Override ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml" PartName="/word/styles.xml"/><Override ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml" PartName="/word/footer1.xml"/><Override ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.header+xml" PartName="/word/header1.xml"/></Types>` const rels = `<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships" xmlns:xml="http://www.w3.org/XML/1998/namespace"><Relationship Target="docProps/core.xml" Type="http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties" Id="rId1"/><Relationship Target="docProps/app.xml" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties" Id="rId2"/><Relationship Target="word/document.xml" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument" Id="rId3"/></Relationships>` const wordrels = `<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships" xmlns:xml="http://www.w3.org/XML/1998/namespace"><Relationship Target="settings.xml" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/settings" Id="rId1"/><Relationship Target="numbering.xml" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/numbering" Id="rId2"/><Relationship Target="styles.xml" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles" Id="rId3"/><Relationship Target="footer1.xml" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/footer" Id="rId4"/><Relationship Target="header1.xml" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/header" Id="rId5"/></Relationships>` const wordSetting = `<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <w:settings xmlns="http://schemas.openxmlformats.org/wordprocessingml/2006/main" xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" xmlns:m="http://schemas.openxmlformats.org/officeDocument/2006/math" xmlns:ma="http://schemas.openxmlformats.org/schemaLibrary/2006/main" xmlns:pic="http://schemas.openxmlformats.org/drawingml/2006/picture" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:s="http://schemas.openxmlformats.org/officeDocument/2006/sharedTypes" xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" xmlns:wp="http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing" xmlns:xml="http://www.w3.org/XML/1998/namespace"><w:compat><w:compatSetting w:name="compatibilityMode" w:uri="http://schemas.microsoft.com/office/word" w:val="15"/></w:compat></w:settings>` const wordStyle = `<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <w:styles xmlns="http://schemas.openxmlformats.org/wordprocessingml/2006/main" xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" xmlns:m="http://schemas.openxmlformats.org/officeDocument/2006/math" xmlns:ma="http://schemas.openxmlformats.org/schemaLibrary/2006/main" xmlns:pic="http://schemas.openxmlformats.org/drawingml/2006/picture" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:s="http://schemas.openxmlformats.org/officeDocument/2006/sharedTypes" xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" xmlns:wp="http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing" xmlns:xml="http://www.w3.org/XML/1998/namespace"><w:docDefaults><w:rPrDefault><w:rPr><w:rFonts w:asciiTheme="majorAscii" w:hAnsiTheme="majorHAnsi" w:eastAsiaTheme="majorEastAsia" w:cstheme="majorBidi"/><w:sz w:val="24"/><w:szCs w:val="24"/><w:lang w:val="en-US" w:eastAsia="en-US" w:bidi="ar-SA"/></w:rPr></w:rPrDefault><w:pPrDefault/></w:docDefaults><w:style w:type="paragraph" w:styleId="Normal" w:default="true"><w:name w:val="Normal"/><w:qFormat/></w:style><w:style w:type="character" w:styleId="DefaultParagraphFont" w:default="true"><w:name w:val="Default Paragraph Font"/><w:uiPriority w:val="1"/><w:semiHidden/><w:unhideWhenUsed/></w:style><w:style w:type="character" w:styleId="TitleChar"><w:name w:val="Title Char"/><w:basedOn w:val="DefaultParagraphFont"/><w:link w:val="Title"/><w:uiPriority w:val="10"/><w:rPr><w:rFonts w:asciiTheme="majorAscii" w:hAnsiTheme="majorHAnsi" w:eastAsiaTheme="majorEastAsia" w:cstheme="majorBidi"/><w:spacing w:val="-10"/><w:kern w:val="28"/><w:sz w:val="56"/><w:szCs w:val="56"/></w:rPr></w:style><w:style w:type="paragraph" w:styleId="Title"><w:name w:val="Title"/><w:basedOn w:val="Normal"/><w:next w:val="Normal"/><w:link w:val="TitleChar"/><w:uiPriority w:val="10"/><w:qFormat/><w:pPr><w:contextualSpacing/></w:pPr><w:rPr><w:rFonts w:asciiTheme="majorAscii" w:hAnsiTheme="majorHAnsi" w:eastAsiaTheme="majorEastAsia" w:cstheme="majorBidi"/><w:spacing w:val="-10"/><w:kern w:val="28"/><w:sz w:val="56"/><w:szCs w:val="56"/></w:rPr></w:style><w:style w:type="table" w:styleId="TableNormal"><w:name w:val="Normal Table"/><w:uiPriority w:val="99"/><w:semiHidden/><w:unhideWhenUsed/><w:tblPr><w:tblInd w:w="0" w:type="dxa"/><w:tblCellMar><w:top w:w="0" w:type="dxa"/><w:left w:w="108" w:type="dxa"/><w:bottom w:w="0" w:type="dxa"/><w:right w:w="108" w:type="dxa"/></w:tblCellMar></w:tblPr></w:style><w:style w:type="numbering" w:styleId="NoList"><w:name w:val="No List"/><w:uiPriority w:val="1"/><w:semiHidden/><w:unhideWhenUsed/></w:style><w:style w:type="character" w:styleId="Heading1Char"><w:name w:val="Heading 1 Char"/><w:basedOn w:val="DefaultParagraphFont"/><w:link w:val="Heading1"/><w:uiPriority w:val="9"/><w:rPr><w:sz w:val="32"/><w:szCs w:val="32"/></w:rPr></w:style><w:style w:type="paragraph" w:styleId="Heading1"><w:name w:val="heading 1"/><w:next w:val="Normal"/><w:link w:val="Heading1"/><w:uiPriority w:val="9"/><w:qFormat/><w:pPr><w:keepNext/><w:spacing w:before="240"/><w:outlineLvl w:val="0"/></w:pPr><w:rPr><w:sz w:val="32"/><w:szCs w:val="32"/></w:rPr></w:style><w:style w:type="character" w:styleId="Heading2Char"><w:name w:val="Heading 2 Char"/><w:basedOn w:val="DefaultParagraphFont"/><w:link w:val="Heading2"/><w:uiPriority w:val="10"/><w:rPr><w:sz w:val="26"/><w:szCs w:val="26"/></w:rPr></w:style><w:style w:type="paragraph" w:styleId="Heading2"><w:name w:val="heading 2"/><w:next w:val="Normal"/><w:link w:val="Heading2"/><w:uiPriority w:val="10"/><w:qFormat/><w:pPr><w:keepNext/><w:spacing w:before="40"/><w:outlineLvl w:val="1"/></w:pPr><w:rPr><w:sz w:val="26"/><w:szCs w:val="26"/></w:rPr></w:style><w:style w:type="character" w:styleId="Heading3Char"><w:name w:val="Heading 3 Char"/><w:basedOn w:val="DefaultParagraphFont"/><w:link w:val="Heading3"/><w:uiPriority w:val="11"/><w:rPr><w:sz w:val="24"/><w:szCs w:val="24"/></w:rPr></w:style><w:style w:type="paragraph" w:styleId="Heading3"><w:name w:val="heading 3"/><w:next w:val="Normal"/><w:link w:val="Heading3"/><w:uiPriority w:val="11"/><w:qFormat/><w:pPr><w:keepNext/><w:spacing w:before="40"/><w:outlineLvl w:val="2"/></w:pPr><w:rPr><w:sz w:val="24"/><w:szCs w:val="24"/></w:rPr></w:style><w:style w:type="character" w:styleId="Heading4Char"><w:name w:val="Heading 4 Char"/><w:basedOn w:val="DefaultParagraphFont"/><w:link w:val="Heading4"/><w:uiPriority w:val="12"/><w:rPr><w:sz w:val="22"/><w:szCs w:val="22"/></w:rPr></w:style><w:style w:type="paragraph" w:styleId="Heading4"><w:name w:val="heading 4"/><w:next w:val="Normal"/><w:link w:val="Heading4"/><w:uiPriority w:val="12"/><w:qFormat/><w:pPr><w:keepNext/><w:spacing w:before="40"/><w:outlineLvl w:val="3"/></w:pPr><w:rPr><w:sz w:val="22"/><w:szCs w:val="22"/></w:rPr></w:style><w:style w:type="character" w:styleId="Heading5Char"><w:name w:val="Heading 5 Char"/><w:basedOn w:val="DefaultParagraphFont"/><w:link w:val="Heading5"/><w:uiPriority w:val="13"/><w:rPr><w:sz w:val="22"/><w:szCs w:val="22"/></w:rPr></w:style><w:style w:type="paragraph" w:styleId="Heading5"><w:name w:val="heading 5"/><w:next w:val="Normal"/><w:link w:val="Heading5"/><w:uiPriority w:val="13"/><w:qFormat/><w:pPr><w:keepNext/><w:spacing w:before="40"/><w:outlineLvl w:val="4"/></w:pPr><w:rPr><w:sz w:val="22"/><w:szCs w:val="22"/></w:rPr></w:style><w:style w:type="character" w:styleId="Heading6Char"><w:name w:val="Heading 6 Char"/><w:basedOn w:val="DefaultParagraphFont"/><w:link w:val="Heading6"/><w:uiPriority w:val="14"/><w:rPr><w:sz w:val="22"/><w:szCs w:val="22"/></w:rPr></w:style><w:style w:type="paragraph" w:styleId="Heading6"><w:name w:val="heading 6"/><w:next w:val="Normal"/><w:link w:val="Heading6"/><w:uiPriority w:val="14"/><w:qFormat/><w:pPr><w:keepNext/><w:spacing w:before="40"/><w:outlineLvl w:val="5"/></w:pPr><w:rPr><w:sz w:val="22"/><w:szCs w:val="22"/></w:rPr></w:style><w:style w:type="character" w:styleId="Heading7Char"><w:name w:val="Heading 7 Char"/><w:basedOn w:val="DefaultParagraphFont"/><w:link w:val="Heading7"/><w:uiPriority w:val="15"/><w:rPr><w:sz w:val="22"/><w:szCs w:val="22"/></w:rPr></w:style><w:style w:type="paragraph" w:styleId="Heading7"><w:name w:val="heading 7"/><w:next w:val="Normal"/><w:link w:val="Heading7"/><w:uiPriority w:val="15"/><w:qFormat/><w:pPr><w:keepNext/><w:spacing w:before="40"/><w:outlineLvl w:val="6"/></w:pPr><w:rPr><w:sz w:val="22"/><w:szCs w:val="22"/></w:rPr></w:style><w:style w:type="character" w:styleId="Heading8Char"><w:name w:val="Heading 8 Char"/><w:basedOn w:val="DefaultParagraphFont"/><w:link w:val="Heading8"/><w:uiPriority w:val="16"/><w:rPr><w:sz w:val="22"/><w:szCs w:val="22"/></w:rPr></w:style><w:style w:type="paragraph" w:styleId="Heading8"><w:name w:val="heading 8"/><w:next w:val="Normal"/><w:link w:val="Heading8"/><w:uiPriority w:val="16"/><w:qFormat/><w:pPr><w:keepNext/><w:spacing w:before="40"/><w:outlineLvl w:val="7"/></w:pPr><w:rPr><w:sz w:val="22"/><w:szCs w:val="22"/></w:rPr></w:style><w:style w:type="character" w:styleId="Heading9Char"><w:name w:val="Heading 9 Char"/><w:basedOn w:val="DefaultParagraphFont"/><w:link w:val="Heading9"/><w:uiPriority w:val="17"/><w:rPr><w:sz w:val="22"/><w:szCs w:val="22"/></w:rPr></w:style><w:style w:type="paragraph" w:styleId="Heading9"><w:name w:val="heading 9"/><w:next w:val="Normal"/><w:link w:val="Heading9"/><w:uiPriority w:val="17"/><w:qFormat/><w:pPr><w:keepNext/><w:spacing w:before="40"/><w:outlineLvl w:val="8"/></w:pPr><w:rPr><w:sz w:val="22"/><w:szCs w:val="22"/></w:rPr></w:style></w:styles>` const docContesnts01 = `<?xml version='1.0' encoding='UTF-8' standalone='yes'?> <w:document xmlns:wpc="http://schemas.microsoft.com/office/word/2010/wordprocessingCanvas" xmlns:mo="http://schemas.microsoft.com/office/mac/office/2008/main" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:mv="urn:schemas-microsoft-com:mac:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:m="http://schemas.openxmlformats.org/officeDocument/2006/math" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:wp14="http://schemas.microsoft.com/office/word/2010/wordprocessingDrawing" xmlns:wp="http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" xmlns:w14="http://schemas.microsoft.com/office/word/2010/wordml" xmlns:wpg="http://schemas.microsoft.com/office/word/2010/wordprocessingGroup" xmlns:wpi="http://schemas.microsoft.com/office/word/2010/wordprocessingInk" xmlns:wne="http://schemas.microsoft.com/office/word/2006/wordml" xmlns:wps="http://schemas.microsoft.com/office/word/2010/wordprocessingShape" mc:Ignorable="w14 wp14"><w:body><w:p><w:pPr><w:pStyle w:val="Heading1"/><w:jc w:val="center"/></w:pPr><w:r><w:t>xxxx办公平台服务运行环境每日巡检表</w:t></w:r></w:p><w:p/><w:p><w:r><w:rPr><w:color w:val="FF0000"/></w:rPr><w:t>注意:如果服务器存在多个,请将其他几个服务器的指标内容,复制粘贴到对应的文档中,完成所有服务器的内容整合至一个文档</w:t></w:r></w:p><w:p><w:r><w:rPr><w:b/></w:rPr><w:t>1.服务器cpu和内存资源状态</w:t></w:r></w:p><w:tbl><w:tblPr><w:tblW w:type="auto" w:w="0"/><w:tblLook w:firstColumn="1" w:firstRow="1" w:lastColumn="0" w:lastRow="0" w:noHBand="0" w:noVBand="1" w:val="04A0"/></w:tblPr><w:tblGrid><w:gridCol w:w="2160"/><w:gridCol w:w="2160"/><w:gridCol w:w="2160"/><w:gridCol w:w="2160"/></w:tblGrid><w:tr><w:tc><w:tcPr><w:tcW w:type="dxa" w:w="2160"/></w:tcPr><w:p><w:r><w:t>IP</w:t></w:r></w:p></w:tc><w:tc><w:tcPr><w:tcW w:type="dxa" w:w="2160"/></w:tcPr><w:p><w:r><w:t>信息项目</w:t></w:r></w:p></w:tc><w:tc><w:tcPr><w:tcW w:type="dxa" w:w="2160"/></w:tcPr><w:p><w:r><w:t>描述值</w:t></w:r></w:p></w:tc><w:tc><w:tcPr><w:tcW w:type="dxa" w:w="2160"/></w:tcPr><w:p><w:r><w:t>状态</w:t></w:r></w:p></w:tc></w:tr>` const docContesnts02 = `</w:tbl><w:p><w:r><w:rPr><w:b/></w:rPr><w:t>2.服务器磁盘资源状态</w:t></w:r></w:p><w:tbl><w:tblPr><w:tblW w:type="auto" w:w="0"/><w:tblLook w:firstColumn="1" w:firstRow="1" w:lastColumn="0" w:lastRow="0" w:noHBand="0" w:noVBand="1" w:val="04A0"/></w:tblPr><w:tblGrid><w:gridCol w:w="1234"/><w:gridCol w:w="1234"/><w:gridCol w:w="1234"/><w:gridCol w:w="1234"/><w:gridCol w:w="1234"/><w:gridCol w:w="1234"/><w:gridCol w:w="1234"/></w:tblGrid><w:tr><w:tc><w:tcPr><w:tcW w:type="dxa" w:w="1234"/></w:tcPr><w:p><w:r><w:t>序号</w:t></w:r></w:p></w:tc><w:tc><w:tcPr><w:tcW w:type="dxa" w:w="1234"/></w:tcPr><w:p><w:r><w:t>盘符信息</w:t></w:r></w:p></w:tc><w:tc><w:tcPr><w:tcW w:type="dxa" w:w="1234"/></w:tcPr><w:p><w:r><w:t>使用率(%)</w:t></w:r></w:p></w:tc><w:tc><w:tcPr><w:tcW w:type="dxa" w:w="1234"/></w:tcPr><w:p><w:r><w:t>总空间(GB)</w:t></w:r></w:p></w:tc><w:tc><w:tcPr><w:tcW w:type="dxa" w:w="1234"/></w:tcPr><w:p><w:r><w:t>使用量(GB)</w:t></w:r></w:p></w:tc><w:tc><w:tcPr><w:tcW w:type="dxa" w:w="1234"/></w:tcPr><w:p><w:r><w:t>剩余量(GB)</w:t></w:r></w:p></w:tc><w:tc><w:tcPr><w:tcW w:type="dxa" w:w="1234"/></w:tcPr><w:p><w:r><w:t>状态</w:t></w:r></w:p></w:tc></w:tr>` const docContesnts03 = `</w:tbl><w:p/><w:p><w:r><w:rPr><w:color w:val="FF0000"/></w:rPr><w:t>注意:红色内容需手动填写完成</w:t></w:r></w:p><w:p><w:r><w:rPr><w:b/></w:rPr><w:t>3.系统监控情况</w:t></w:r></w:p><w:p><w:r><w:t xml:space="preserve"> 当前G1 Old Gen年老代使用比例</w:t></w:r><w:r><w:rPr><w:color w:val="FF0000"/></w:rPr><w:t>“10%”</w:t></w:r><w:r><w:rPr><w:color w:val="000000"/></w:rPr><w:t>,未超过80%,peak ratio系统运行期间最高峰值为</w:t></w:r><w:r><w:rPr><w:color w:val="FF0000"/></w:rPr><w:t>“11%”</w:t></w:r><w:r><w:rPr><w:color w:val="000000"/></w:rPr><w:t>,未超过90%,系统运行状态良好。</w:t></w:r></w:p><w:p/><w:p><w:r><w:t>当前数据库繁忙的连接</w:t></w:r><w:r><w:rPr><w:color w:val="FF0000"/></w:rPr><w:t>“8”</w:t></w:r><w:r><w:rPr><w:color w:val="000000"/></w:rPr><w:t>,Peak connections:最高峰数据库连接数</w:t></w:r><w:r><w:rPr><w:color w:val="FF0000"/></w:rPr><w:t>“14”</w:t></w:r><w:r><w:rPr><w:color w:val="000000"/></w:rPr><w:t>,未超过400,应用线程数Thread Count</w:t></w:r><w:r><w:rPr><w:color w:val="FF0000"/></w:rPr><w:t>“322”</w:t></w:r><w:r><w:rPr><w:color w:val="000000"/></w:rPr><w:t>:Peak Thread Count应用线程数峰值为</w:t></w:r><w:r><w:rPr><w:color w:val="FF0000"/></w:rPr><w:t>“325”</w:t></w:r><w:r><w:rPr><w:color w:val="000000"/></w:rPr><w:t>,未超过2000,系统运行状态良好。</w:t></w:r></w:p><w:p/><w:p><w:pPr><w:jc w:val="right"/></w:pPr><w:r><w:rPr><w:sz w:val="20"/></w:rPr><w:t>` // 巡检日期:2022年11月09日 const docContesnts04 = `</w:t></w:r></w:p><w:p><w:pPr><w:jc w:val="right"/></w:pPr><w:r><w:rPr><w:sz w:val="20"/></w:rPr><w:t xml:space="preserve">巡检人:xxx </w:t></w:r></w:p><w:sectPr w:rsidR="00FC693F" w:rsidRPr="0006063C" w:rsidSect="00034616"><w:pgSz w:w="12240" w:h="15840"/><w:pgMar w:top="1440" w:right="1800" w:bottom="1440" w:left="1800" w:header="720" w:footer="720" w:gutter="0"/><w:cols w:space="720"/><w:docGrid w:linePitch="360"/></w:sectPr></w:body></w:document>`