From: Sergey Matveev Date: Sun, 24 Sep 2023 08:17:13 +0000 (+0300) Subject: Two NICs X-Git-Url: http://www.git.stargrave.org/?p=godwmstat.git;a=commitdiff_plain;h=24981a733fa25c3a7aa604cbecb4b94e385f80d6 Two NICs --- diff --git a/main.go b/main.go index e936217..09ff208 100644 --- a/main.go +++ b/main.go @@ -9,6 +9,7 @@ import ( "os/exec" "strconv" "strings" + "sync" "time" "github.com/dustin/go-humanize" @@ -23,7 +24,8 @@ var ( Swap string = "" Flags string = "?" IOs string = "?" - Net string = "?" + Net = map[string]string{} + NetM sync.RWMutex ) func piper(c chan []string, name string, args ...string) error { @@ -97,8 +99,8 @@ func iostat() { } } -func netstat() { - for cols := range bg("netstat", "-I", "bridge0", "-n", "1") { +func netstat(iface string) { + for cols := range bg("netstat", "-I", iface, "-n", "1") { if _, err := strconv.Atoi(cols[0]); err != nil { continue } @@ -110,12 +112,16 @@ func netstat() { if err != nil { continue } - Net = fmt.Sprintf( - "%s/%s %s / %s", - cols[0], cols[4], + _ = cols[0] // pkts rx + _ = cols[4] // pkts tx + NetM.Lock() + Net[iface] = fmt.Sprintf( + "%s:%s/%s", + iface, humanize.IBytes(uint64(ibps)), humanize.IBytes(uint64(obps)), ) + NetM.Unlock() } } @@ -158,17 +164,20 @@ func main() { go top() go freq() go iostat() - go netstat() + go netstat("bridge0") + go netstat("ix0") var now time.Time var status string var cmd *exec.Cmd for { now = time.Now() + NetM.RLock() status = fmt.Sprintf( - "[%s] [%s] [%s %s] [%s%s %s ARC] [%s] %s", - IOs, Net, CPU, Freq, Swap, Mem, ARC, Flags, + "[%s] [%s %s] [%s %s] [%s%s %s ARC] [%s] %s", + IOs, Net["bridge0"], Net["ix0"], CPU, Freq, Swap, Mem, ARC, Flags, now.Format("2006-01-02 15:04:05"), ) + NetM.RUnlock() if *xsetroot { cmd = exec.Command("xsetroot", "-name", status) cmd.Run()