gpt4 book ai didi

loops - go lang + snmp in lool(错误连接处理)

转载 作者:IT王子 更新时间:2023-10-29 01:48:30 25 4
gpt4 key购买 nike

我在 golnag 上做一个服务器,我需要对许多设备执行 SNMP 命令,其中一些设备无法连接(或暂时丢失)我想要消息“无连接”或“错误”,然后继续运行程序

Ubuntu 18.04//转到 1.8//从 https://github.com/soniah/gosnmp 转到 SNMP

package main

import (
"fmt"
"log"
"time"
g "github.com/soniah/gosnmp"
)

func main() {
g.Default.Target = string("192.168.10.1")
err := g.Default.Connect()
if err != nil {
log.Fatalf("Connect() err: %v", err)
fmt.Println("Fail connection") // want this message in this case !!!!!
}
defer g.Default.Conn.Close()

oids := []string{"1.3.6.1.2.1.1.4.0", "1.3.6.1.2.1.1.7.0"}
result, err2 := g.Default.Get(oids)
if err2 != nil {
log.Fatalf("Get() err: %v", err2)
fmt.Println("Error read OID") // want this message in this case !!!!!
}

for i, variable := range result.Variables {
fmt.Printf("%d: oid: %s ", i, variable.Name)

switch variable.Type {
case g.OctetString:
fmt.Printf("string: %s\n", string(variable.Value.([]byte)))
default:
fmt.Printf("number: %d\n", g.ToBigInt(variable.Value))
}
}
}

如果没有连接,我会收到这个结果,并中断 pogramm 的运行

2019/05/19 15:11:33 Get() err: Request timeout (after 3 retries)
exit status 1

我想要这样的东西

"Fail connection"   or  "Error read OID"

接下来,我要继续程序的运行

最佳答案

在您留下评论的行中有无法访问的代码。

只需为 log.Fatalf 使用正确的字符串值:

if err != nil {
log.Fatalf("Fail connection, error: %v", err)
}

或者如果你不想退出:

if err != nil {
log.Printf("Fail connection, error: %v", err)
}

关于loops - go lang + snmp in lool(错误连接处理),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56207893/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com