bwm-ng(1)
π bwm-ng π
okay bestie, gather round, because we're about to talk about bwm-ng β that's Bandwidth Monitor NG (yes, Next Generation, very main character of it) β and it's a live bandwidth monitor for network and disk io. she's iconic, she's nosy in the best way, and she's about to tell you everything.
β¨ SYNOPSIS β¨
bwm-ng [options] ... [configfile]
πΈ DESCRIPTION πΈ
so like. bwm-ng watches the current bandwidth of all your network interfaces, or just some specific ones, or your disks (or partitions β we love a partition). she shows you the total of in and out, plus the total of all interfaces/devices, all at once. and she's got range: several different output methods, specifically curses, curses2, plain, csv and html.
and here's the part where she's just built different: bwm-ng is not limited in the number of interfaces or disks she can handle. she can pick up brand new ones dynamically while she's running, and she can hide the ones that aren't up. no cap. she just keeps up. π¦
π INPUT METHODS π
which input method you get pretty much depends on your OS and your system, periodt. you can choose your preferred one either at start or in curses during runtime. important caveat though β each method can only be used if bwm-ng was compiled with support for it. no support, no vibes, sorry bestie. π
currently supported network input methods:
procβ this is the default for Linux based systems. it parses the special procfs file/proc/net/dev. on Linux, if in doubt, use this one.getifaddrsβ this is the default on BSD systems like FreeBSD, NetBSD, OpenBSD and recent Mac OS X (>=10.3). on those systems, if in doubt, use this one. it uses thegetifaddrssystemcall.kstatβ this is the default for Solaris. it uses thekstatsystemcall.sysctlβ this is the default on Systems like IRIX and other UNIX. it can be used on many other systems like early Mac OS X as well. it uses thesysctlsystemcall.netstatβ this is a Backup for systems without the above, or for other problems.libstatgrabβbwm-ngcan use the external librarylibstatgrabto gather the data. please refer tohttp://www.i-scream.org/libstatgrabfor more info about this.
currently supported disk input methods:
diskβ shows the diskio on Linux2.6+systems using/proc/diskstats. heads up: instead of packets, the number of read/writes will be shown.kstatdiskβ same askstatnetwork input but for disk io. it uses thekstatsystemcall from Solaris.sysctlβ written for NetBSD and OpenBSD, but maybe working on other Platforms aswell.devstatβdevstatlibrary based input. you can find this on FreeBSD based systems.ioserviceβ frameworkIOKitbased input. you can find this on Darwin systems like MacOSX.libstatdiskβ same aslibstatgrabbut for disk io (http://www.i-scream.org/libstatgrab/).
π OUTPUT METHODS π
you can select several different ways to output the data that bwm-ng gathered. pick your fighter:
cursesβ this is the default output method, and usually it fits you the most. in curses mode you can controlbwm-ngwith several keys. press'h'for a online help. to quit using this mode, either press'q'orctrl-c.curses2β shows bar charts of the current IO, using curses output. πplainβ Plain or ASCII is mostly a backup if curses is not available. you cannot controlbwm-ngat all in this mode. to quit, pressctrl-c. but for one single single output, using this is the mode that fits the best.csvβ CSV is designed to use with scripts for easy parsing.
Type rate:
unix timestamp;iface_name;bytes_out/s;bytes_in/s;bytes_total/s;bytes_in;bytes_out;packets_out/s;packets_in/s;packets_total/s;packets_in;packets_out;errors_out/s;errors_in/s;errors_in;errors_out\n
Type svg, sum, max:
unix timestamp;iface_name;bytes_out;bytes_in;bytes_total;packets_out;packets_in;packets_total;errors_out;errors_in\n
to skip the first output with only zeros use:
bwm-ng -o csv -c 0
htmlβ this is designed for use in the WWW. it uses the CSS filebwm-ng.cssin current working dir."--htmlrefresh"only affects the refresh of the page by the browser. for best results use the same value for--timeoutand--htmlrefresh.
β¨ OPTIONS β¨
the options that are recognized by bwm-ng can be divided into 3 different groups. heads up: the long versions can only be used if bwm-ng was compiled with getopt_long. iykyk.
π INPUT π
these options specify the method to gather the data as well as different options for them.
-i,--inputmethod β selects which method to use. it can be one of the above (see INPUT METHODS) if support for it was compiled in.-f,--procfilefilename β selects the file to parse in proc input method. this is usually/proc/net/dev.--diskstatsfilefilename β selects the file to parse in disk input method. this is usually/proc/diskstats.--partitionsfilefilename β selects the file to parse in disk input method on older Kernel. this is usually/proc/partitions.-n,--netstatpath β specifies the binary to execute for netstat input method. because this may be a security flaw, support for this option is not compiled inbwm-ngby default. π
π¦ OUTPUT π¦
these options select the way to output the data and several options for the output.
-o,--outputmethod β selects which method to use for output. it can be one of the above (see OUTPUT METHODS) if support for it was compiled in.-u,--unitvalue β selects which unit to show. it can be one ofbytes,bits,packetsorerrors.-T,--typevalue β specifies the type of stats to show. use one ofratefor the current rate/s,maxfor the maximal value achieved since startup ofbwm-ng,sumfor the total sum counted since startup ofbwm-ngoravgfor the average over the last 30 seconds.-c,--countnumber β number of outputs for Plain and CSV output mode. use'1'for once single output. using'0'in CSV mode will skip first output that always consists of zero values.-C,--csvcharchar β specifies the delimiter char for CSV mode. the default is';'.-F,--outfilefilename β specifies the use of a outfile instead of stdout. this option only affects CSV and HTML mode.-R,--htmlrefreshseconds β sets the HTML Meta refresh field to seconds in HTML mode. this will result in a reload of the page every n seconds by the browser. if this is set you want to use--htmlheaderas well.-H,--htmlheader[value] β if this option is used,bwm-ngwill print the correct HTML header (<html></html>) including Meta fields before and after data. this is only useful in HTML mode. value can be0(off) or1(on), if the value is not given'1'is used.-N,--ansioutβ disable ANSI Codes for Plain output.--longdisknamesβ show long realnames of disks in Darwin (ioservice input).
π OTHER π
these options specify the general behavior of bwm-ng.
-t,--timeoutmsec β displays and gathers stats every n msec (1msec = 1/1000sec). the default is500msec.-d,--dynamic[value] β shows bytes and bits with dynamic unit likeK,MorG(Kilo, Mega, Giga). value can be0(off) or1(on), without a value'1'is used.-a,--allif[mode] β specifies whether only up and selected interfaces (mode=0), all which are up but maybe not selected (mode=1) or all, even down and not selected interfaces (mode=2). if no interface list given (--interfaces)mode=1andmode=2are the same.-I,--interfaceslist β show only interfaces which are in this comma separated list (whitelist). if the list is prefixed by a'%'its meaning is negated and interfaces in this list are hidden from output (blacklist). (Example:%eth0,tun0)-S,--sumhidden[value] β if given and the optional value is not0, count also hidden and not shown interfaces for total value.-A,--avglengthseconds β sets the span in which the stats for average mode are collected. default is30seconds or2*timeout.-D,--daemon[value] β fork into background and daemonize if given and the optional value is not0. this only affects HTML and CSV mode and--outfileis required.-h,--helpβ show a help of command line options.-V,--versionβ print version info.
π CONFIGFILE π
the behavior of bwm-ng can be also controlled by a configfile. by default bwm-ng first reads /etc/bwm-ng.conf and then ~/.bwm-ng.conf. if specified on command line, bwm-ng skips those. it consists of the same long-options as used for command line as keys followed by a '=' and the value. lines starting with a # or unknown key will be ignored.
for example:
DYNAMIC=1
UNIT=bits
PROCFILE=/proc/net/dev
OUTPUT=plain
π§ OTHER FILES π§
bwm-ng.cssβ the CSS file used for html output.
β SEE ALSO β
bwm-ng.conf-examplefor an example of the configfileREADMEfor other comments and hints aboutbwm-nghttp://www.gropp.org/for new version or further help and links
π AUTHORS π
Volker Gropp <bwmng@gropp.org> wrote bwm-ng and is current maintainer. for further Authors please refer to the AUTHORS file which should come with bwm-ng.
and that's the whole page bestie!! this beauty is from the bwm-ng(1) manual, dated 2007-03-01, and honestly? she ate. go monitor something. π
β¨π«Ά
π¦ where this page comes from
- alpine 3.22: bwm-ng-doc 0.6.3-r3 Β· GPL-2.0-or-later
- alpine 3.23: bwm-ng-doc 0.6.3-r3 Β· GPL-2.0-or-later
- alpine 3.24: bwm-ng-doc 0.6.3-r3 Β· GPL-2.0-or-later
- arch rolling: bwm-ng 0.6.3-3 Β· GPL
- debian bookworm: bwm-ng 0.6.3-2+b1 Β· GPL-2.0-or-later
- debian trixie: bwm-ng 0.6.3-2+b1 Β· GPL-2.0-or-later
- epel 9: bwm-ng 0.6.3-1.el9 Β· GPLv2+
- fedora 43: bwm-ng 0.6.3-6.fc43 Β· GPL-2.0-or-later
- fedora 44: bwm-ng 0.6.3-8.fc44 Β· GPL-2.0-or-later
- nixos 26.05: bwm-ng 0.6.3
- nixpkgs unstable: bwm-ng 0.6.3
- ubuntu jammy: bwm-ng 0.6.3-2 Β· GPL-2.0-or-later
- ubuntu noble: bwm-ng 0.6.3-2 Β· GPL-2.0-or-later
- ubuntu resolute: bwm-ng 0.6.3-2build1 Β· GPL-2.0-or-later
- ubuntu stonking: bwm-ng 0.6.3-2build1 Β· GPL-2.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms