Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
VNSTAT(1)			 User Manuals			     VNSTAT(1)

NAME
       vnstat -	a console-based	network	traffic	monitor

SYNOPSIS
       vnstat  [-5bDedhlmqstvy?]   [--95th]  [--add] [--alert output exit type
       condition limit unit] [--begin date] [--config file]  [--days  [limit]]
       [--db  file]  [--dbdir  directory] [--dbiflist [mode]] [--debug]	[--end
       date]  [--fiveminutes  [limit]]	[--help]   [-hg]   [--hours   [limit]]
       [--hoursgraph]  [-i  interface]	[--iface  interface] [--iflist [mode]]
       [--json [mode] [limit]] [--limit	limit] [--live [mode]]	[--locale  lo-
       cale]  [--longhelp]  [--merge  source  destination]  [--months [limit]]
       [--oneline [mode]]  [--query  [mode]]  [--rateunit  [mode]]  [--remove]
       [--rename  name]	 [-ru [mode]] [--setalias alias] [--short] [--showcon-
       fig] [--style number] [--top [limit]] [-tr [time]]  [--traffic  [time]]
       [--version] [--xml [mode] [limit]] [--years [limit]] [interface]

DESCRIPTION
       vnStat  is a console-based network traffic monitor. It keeps a log of 5
       minute interval,	hourly,	daily, monthly and yearly network traffic  for
       the  selected  interface(s).   However,	it isn't a packet sniffer. The
       traffic information is read from	the proc(5) or sys filesystems depend-
       ing on availability resulting in	light use of system resources  regard-
       less  of	network	traffic	rate. That way vnStat can be used even without
       root permissions	on most	systems.

       Functionality is	divided	into two commands. The purpose of  the	vnstat
       command is to provide an	interface for querying the traffic information
       stored in the database whereas the daemon vnstatd(8) is responsible for
       data  retrieval,	 caching  and  storage.	Although the daemon process is
       constantly running as a service,	it is actually spending	 most  of  its
       time sleeping between data updates.

OPTIONS
       --95th Show  95th  percentile output for	the ongoing month. This	output
	      uses the 5 minute	resolution data	of the ongoing month to	calcu-
	      late the 95th percentile traffic rate for	received,  transmitted
	      and total. In addition, the minimum, average and maximum traffic
	      rates  for  received, transmitted	and total are also shown. This
	      output requires the 5MinuteHours configuration option to have  a
	      value of at least	744 for	storing	all the	necessary data,	other-
	      wise 100%	coverage isn't possible.

       --add  Create database entry for	interface specified with -i or --iface
	      option. The daemon can be	running	during this operation and will
	      automatically  start  monitoring the interface without a restart
	      within SaveInterval minutes if configuration option  RescanData-
	      baseOnSave   is  enabled.	 Otherwise  the	 daemon	 needs	to  be
	      restarted	in order for the added interface to be monitored.

       --alert output exit type	condition limit	unit
	      Depending	on values of given parameters, show alert, use differ-
	      ent exit status or a combination of both when configured	situa-
	      tion is met.

	      output  parameter	 takes a number	from 0 to 3 and	controls when,
	      if at all, the command will result in output. '0'	never produces
	      output, '1' always produces output, '2' shows output  only  when
	      usage  estimate  exceeds	limit  and  '3'	shows output only when
	      limit is exceeded.

	      exit parameter takes a number from 0 to 5	and controls the  exit
	      status of	the command. '0' always	uses exit status 0, '1'	always
	      uses exit	status 1, '2' uses exit	status 1 if usage estimate ex-
	      ceeds limit but otherwise	exit status 0 and '3' uses exit	status
	      1	 if limit is exceeded but otherwise exit status	0. '4' and '5'
	      are equivalents of '2' and '3' with  the	difference  that  exit
	      status  2	is used	instead	of exit	status 1 when the condition is
	      met. This	can help differentiate alerts from  errors  as	errors
	      will always use exit status 1.

	      type  parameter defines to which time range type usage the limit
	      is compared against. Available options: 'h',  'hour',  'hourly',
	      'd',  'day',  'daily',  'm',  'month',  'monthly',  'y', 'year',
	      'yearly',	'p', '95', '95%'.

	      condition	parameter defines if limit  is	compared  to  received
	      (rx), transmitted	(tx), total or estimated usage of these	three.
	      Available	options: 'rx', 'tx', 'total', 'rx_estimate', 'tx_esti-
	      mate',  'total_estimate'.	 Estimate options aren't available for
	      95th percentile type.

	      limit is a greater than zero integer without decimals which  de-
	      fines  the  traffic  usage limit using the unit defined with the
	      unit parameter.  unit accepts the	following options: 'B',	'KiB',
	      'MiB', 'GiB', 'TiB', 'PiB', 'EiB', 'KB', 'MB', 'GB', 'TB', 'PB',
	      'EB'.  For 95th percentile type the following options are	avail-
	      able:  'B/s',  'KiB/s',  'MiB/s',	 'GiB/s',  'TiB/s',   'PiB/s',
	      'EiB/s',	 'kB/s',   'MB/s',  'GB/s',  'TB/s',  'PB/s',  'EB/s',
	      'bit/s', 'Kibit/s', 'Mibit/s', 'Gibit/s',	'Tibit/s',  'Pibit/s',
	      'Eibit/s',  'kbit/s',  'Mbit/s',	'Gbit/s',  'Tbit/s', 'Pbit/s',
	      'Ebit/s'.	 Usage must exceed limit in order for the alarm	to ac-
	      tivate. Exactly the same usage  as  limit	 does  not  raise  the
	      alarm.

	      Estimate	calculation  isn't  limited to the estimate options in
	      condition	parameter but can also be achieved by using the	 esti-
	      mate option in output or exit parameters.	Missing	or invalid pa-
	      rameters	or  parameter  combination will	result in --alert spe-
	      cific help output	being shown.

       -b, --begin date
	      Begin the	list output with a specific date  /  time  defined  by
	      date  instead of the begin being selected	based on the number of
	      entries to be shown.  If date isn't available  in	 the  database
	      then  the	 closest  later	 date will be used.  date supports the
	      following	formats: YYYY-MM-DD  HH:MM,  YYYY-MM-DD	 and  "today".
	      This  option  can	only be	used with --json , --xml and list out-
	      puts.

       --config	file
	      Use file as configuration	file instead of	using  automatic  con-
	      figuration file search functionality. If --config	is used	multi-
	      ple  times,  the	configuration settings from files later	on the
	      command line will	override configuration	settings  loaded  from
	      earlier files if the settings defined in the files overlap.

       -d, --days [limit]
	      Show  traffic statistics on a daily basis	for the	last days. The
	      length of	the list will be limited to 30 entries unless  config-
	      ured  otherwise  or unless the optional limit parameter is used.
	      All entries stored in the	database will be shown if limit	is set
	      to 0.

       --db file
	      Use file as database file	instead	of searching  for  a  database
	      from  the	 directory  specified in the configuration file	or the
	      hardcoded	default	if no configuration file is  available.	  This
	      option overrides --dbdir.

       --dbdir directory
	      Use  directory as	database directory instead of using the	direc-
	      tory specified in	the configuration file or  the	hardcoded  de-
	      fault  if	no configuration file is available. This option	is ig-
	      nored if --db is also defined.

       --dbiflist [mode]
	      List interfaces currently	in the database. If mode  is  not  de-
	      fined or is set to 0 then	the output will	use a one line verbose
	      format. If mode is set to	1 then the output will contain one in-
	      terface per line and if mode is set to 2 then only the interface
	      count will be shown as a single number. See also --iflist.

       -D, --debug
	      Show additional debug output.

       -e, --end date
	      End  the list output with	a specific date	/ time defined by date
	      instead of the latest date / time	in the database. If date isn't
	      available	in the database	then the closest earlier date will  be
	      used.  date supports the following formats: YYYY-MM-DD HH:MM and
	      YYYY-MM-DD.   This  option  can only be used with	--json , --xml
	      and list outputs.	In list	outputs	the estimate line is  replaced
	      with  a  sum line	with values representing the sums of each col-
	      umn. The sum line	is shown only if the output consists  of  more
	      than  one	data line. This	is applicable even if the defined date
	      is the same as the current date.	The  top  list	also  requires
	      --begin to be used at the	same time with this option.

       -5, --fiveminutes [limit]
	      Show  traffic statistics with a 5	minute resolution for the last
	      hours.  The length of the	list will be limited to	24 entries un-
	      less configured otherwise	or unless the optional limit parameter
	      is used. All entries stored in the database  will	 be  shown  if
	      limit is set to 0.

       -h, --hours [limit]
	      Show  traffic  statistics	 on  a hourly basis. The length	of the
	      list will	be limited to 24 entries unless	 configured  otherwise
	      or  unless  the  optional	 limit	parameter is used. All entries
	      store in the database will be shown if the limit is set to 0.

       -hg, --hoursgraph
	      Show traffic statistics on a hourly basis	for the	last 24	 hours
	      using a bar graph	followed by a table representing the numerical
	      data.

       -i, --iface interface
	      Select  one specific interface and apply actions to only it. For
	      database queries,	it is possible to merge	the information	of two
	      or more interfaces using the interface1+interface2+...   syntax.
	      All  provided  interfaces	 must  be unique and must exist	in the
	      database when the	merge syntax is	used. Optionally, depending on
	      the InterfaceMatchMethod configuration setting, interface	can be
	      replaced with alias previously set using --setalias.  Merge syn-
	      tax isn't	supported when alias is	used. The -i,  --iface	option
	      is  optional  and	interface can be used as parameter on the com-
	      mand line	for selecting the used interface even without the  op-
	      tion being explicitly used.

       --iflist	[mode]
	      List  currently  available interfaces. If	mode is	not defined or
	      is set to	0 then the output will use a one line verbose  format.
	      If  mode	is set to 1 then the output will contain one interface
	      per line and if mode is set to 2 then only the  interface	 count
	      will be shown as a single	number.	See also --dbiflist.

       --json [mode] [limit]
	      Show  database  content for selected interface or	all interfaces
	      in json format. All traffic values in the	output	are  in	 bytes
	      unless  otherwise	 indicated by the name of the key. An optional
	      mode parameter can be used for limiting the output to  only  se-
	      lected  information.  Everything except the 95th percentile out-
	      put is shown by default. Setting mode to 's' will	output a  sum-
	      mary  containing	the last 2 entries of 5	minute,	hourly,	daily,
	      monthly and yearly resolution  data,  'f'	 will  output  only  5
	      minute  resolution entries, 'h' hours, 'd' days, 'm' months, 'y'
	      years, 't' the top days and 'p' the  95th	 percentile.  Alterna-
	      tively  or  in combination with mode an optional limit parameter
	      can be used to limit the number of entries in  the  output.  The
	      --json option can	be used	in combination with -l,	--live and -tr
	      options  without	mode or	limit having any effect	to the output.
	      The jsonversion field in the output contains the API version in-
	      formation. It will be changed only when the names	or  structures
	      of  previously existing content gets changed. In comparison, the
	      vnstatversion field exists only as extra information.

       --limit limit
	      Set the maximum number of	 shown	entries	 in  list  outputs  to
	      limit.   Usage of	--limit	overrides the default list entry limit
	      values and the optional limit parameter  given  directly	for  a
	      list  query. All entries stored in the database will be shown if
	      limit is set to 0.  --limit can also  be	used  to  control  the
	      length of	--json and --xml outputs.

       -l, --live [mode]
	      Display current transfer rate for	the selected interface in real
	      time until interrupted. Statistics will be shown after interrup-
	      tion  if	the runtime was	more than 10 seconds. An optional mode
	      parameter	can be used to select between the displaying of	 pack-
	      ets  per	second	(mode 0) and transfer counters (mode 1)	during
	      execution.  --style can also be used to affect the layout	of the
	      output. The output will be in json format	if used	in combination
	      with --json option.

       --locale	locale
	      Use locale instead of using the locale setting specified in  the
	      configuration  file  or  the  system default if no configuration
	      file is available.

       --longhelp
	      Show complete options list.

       --merge source destination
	      Merge interface data from	source database	to  destination	 data-
	      base.  Unless  interfaces	 are  specified,  all  interfaces from
	      source will be merged to destination.  A new  database  will  be
	      created  if  destination	doesn't	 exist.	If an interface	of the
	      same name	doesn't	exist in destination then a direct copy	action
	      for the data from	source will be executed. If  an	 interface  of
	      the  same	 name  already	exists in destination then an additive
	      merge action will	be executed. The source	database is always ac-
	      cessed as	read-only and will never be modified by	the merge  ac-
	      tions. Changes to	the destination	database cannot	be reversed as
	      subtraction  actions  aren't  supported.	Execution of the merge
	      needs to be acknowledged with an additional parameter.  If  this
	      additional  parameter  isn't  provided then a preview of the ac-
	      tions with additional guidance will be shown.

	      Both source and destination can either refer directly  to	 data-
	      base files or use	an alternative file:interface syntax where the
	      database	file  is  suffixed  with  : followed with an interface
	      name. When used as source, the alternative syntax	allows	speci-
	      fying  one interface to be merged	from source to destination in-
	      stead of all interfaces being merged. Additionally, it's	possi-
	      ble  to use the alternative syntax in destination	for specifying
	      to which interface the data will be merged to.

       -m, --months [limit]
	      Show traffic statistics on a monthly basis for the last  months.
	      The length of the	list will be limited to	12 entries unless con-
	      figured  otherwise  or  unless  the  optional limit parameter is
	      used. All	entries	stored in the database will be shown if	 limit
	      is set to	0.

       --oneline [mode]
	      Show  traffic summary for	selected interface using one line with
	      a	parsable format. The output contains 15	fields with ; used  as
	      field delimiter. The 1st field contains the API version informa-
	      tion  of the output that will only be changed in future versions
	      if the field content or structure	changes. The following	fields
	      in  order	 2)  interface name, 3)	timestamp for today, 4)	rx for
	      today, 5)	tx for today, 6) total for today, 7)  average  traffic
	      rate  for	 today,	8) timestamp for current month,	9) rx for cur-
	      rent month, 10) tx for current  month,  11)  total  for  current
	      month,  12) average traffic rate for current month, 13) all time
	      total rx,	14) all	time total tx, 15) all time total traffic.  An
	      optional mode parameter can be used to force all fields to  out-
	      put in bytes without the unit itself shown.

       -q, --query [mode]
	      Force  database  query  mode.  An	optional mode parameter	can be
	      used to override the default query mode. 'a'  results  in	 short
	      summary output being used	when there are more than one interface
	      in  the  database, otherwise regular summary output is used. 's'
	      results in regular summary output	being shown for	one  interface
	      regardless of the	number of interfaces in	the database. When the
	      optional	mode parameter isn't defined, the configured QueryMode
	      will be used instead.

       --remove
	      Delete the database entry	for the	interface specified with -i or
	      --iface and stop monitoring it. The daemon can be	running	during
	      this operation and will automatically detect the change.

       --rename	name
	      Rename the interface specified with -i or	--iface	in  the	 data-
	      base  with  new name name.  The new name cannot already exist in
	      the database. This operation doesn't cause any  data  loss.  The
	      daemon should not	be running during this operation.

       -ru, --rateunit [mode]
	      Swap the configured rate unit. If	rate has been configured to be
	      shown in bytes then rate will be shown in	bits if	this option is
	      present.	In  the	 same  way,  if	rate has been configured to be
	      shown in bits then rate will be shown in bytes when this	option
	      is  present.  Alternatively, mode	with either 0 or 1 can be used
	      as parameter for this option in order to	select	between	 bytes
	      (0) and bits (1) regardless of the configuration file setting.

       --setalias alias
	      Set  alias as an alias for the selected interface	to be shown in
	      queries. The set alias can be removed  by	 specifying  an	 empty
	      string  for alias.  The daemon can be running during this	opera-
	      tion.

       -s, --short
	      Use short	output mode. This mode is also used when more than one
	      interface	is available in	the database and no specific interface
	      is selected.

       --showconfig
	      Show current configuration using the same	format as the configu-
	      ration file itself uses.

       --style number
	      Modify the content and style of outputs. Set number to 0	for  a
	      narrower output, 1 for enabling bar column, 2 for	same as	previ-
	      ous  but with average traffic rate visible in summary output and
	      3	for enabling average traffic rate in all outputs where	it  is
	      supported.  4 disables the use of	terminal control characters in
	      -l, --live and -tr, --traffic modes.

       -t, --top [limit]
	      Show all time top	traffic	days. The length of the	list  will  be
	      limited  to 10 entries unless configured otherwise or unless the
	      optional limit parameter is used.	 All  entries  stored  in  the
	      database	will  be  shown	 if  limit is set to 0.	When used with
	      --begin and optionally with --end, the list  will	 be  generated
	      using  the  daily	 data  instead	of  separate top entries.  The
	      availability of daily data defines the boundaries	the date  spe-
	      cific query can access.

       -tr, --traffic [time]
	      Calculate	 how  much traffic goes	through	the selected interface
	      during the given time seconds. The time will be 5	seconds	 if  a
	      number  parameter	 isn't	specified.  The	output will be in json
	      format if	used in	combination with --json	 option.  However,  in
	      that  case,  the	countdown before results isn't shown.  --style
	      can also be used to affect the layout of the output.

       -v, --version
	      Show current version.

       --xml [mode] [limit]
	      Show database content for	selected interface or  all  interfaces
	      in xml format. All traffic values	in the output are in bytes un-
	      less  otherwise  indicated  by  the name of the key. An optional
	      mode parameter can be used for limiting the output to  only  se-
	      lected  information.  Everything except the 95th percentile out-
	      put is shown by default. Setting mode to 's' will	output a  sum-
	      mary  containing	the last 2 entries of 5	minute,	hourly,	daily,
	      monthly and yearly resolution  data,  'f'	 will  output  only  5
	      minute  resolution entries, 'h' hours, 'd' days, 'm' months, 'y'
	      years, 't' the top days and 'p' the  95th	 percentile.  Alterna-
	      tively  or  in combination with mode an optional limit parameter
	      can be used to limit the number of entries in  the  output.  The
	      xmlversion field in the output contains the API version informa-
	      tion.  It	 will  be changed only when the	names or structures of
	      previously existing content gets changed.	In comparison, the vn-
	      statversion field	exists only as extra information.

       -y, --years [limit]
	      Show traffic statistics on a yearly basis	for  the  last	years.
	      The list will show all entries by	default	unless configured oth-
	      erwise  or  unless the optional limit parameter is used. All en-
	      tries stored in the database will	also be	shown if limit is  set
	      to 0.

       -?, --help
	      Show a command option summary.

FILES
       /var/lib/vnstat/
	      Default database directory.

       /etc/vnstat.conf
	      Config file that will be used unless $HOME/.vnstatrc exists. See
	      vnstat.conf(5) for more information.

EXAMPLES
       vnstat Display  traffic	summary	 for the default interface or multiple
	      interfaces when more than	one is monitored.

       vnstat -i eth0+eth1+eth3
	      Display traffic summary for a merge of interfaces	eth0, eth1 and
	      eth3.

       vnstat -i eth2 --xml
	      Output all information about interface eth2 in xml format.

       vnstat --json
	      Output all information of	all monitored interfaces in json  for-
	      mat.

       vnstat -i eth0 --setalias local
	      Give  interface eth0 the alias "local". That information will be
	      later visible as a label when eth0 is queried.

       vnstat -i eth2 --remove
	      Delete database entries for interface eth2 and  stop  monitoring
	      it.

RESTRICTIONS
       Updates need to be executed at least as often as	it is possible for the
       interface  to  generate enough traffic to overflow the kernel interface
       traffic counter.	Otherwise, it is possible that some traffic  won't  be
       seen.  With 32-bit interface traffic counters, the maximum time between
       two updates depends on how fast the interface can transfer 4 GiB.  Note
       that there is no	guarantee that a 64-bit	kernel	has  64-bit  interface
       traffic counters	for all	interfaces. Calculated theoretical times are:
	      10 Mbit:	      54 minutes
	      100 Mbit:	       5 minutes
	      1000 Mbit:      30 seconds

       Virtual	and  aliased interfaces	cannot be monitored because the	kernel
       doesn't provide traffic information for that type of  interfaces.  Such
       interfaces  are usually named eth0:0, eth0:1, eth0:2 etc. where eth0 is
       the actual interface being aliased.

       Using long date output formats may cause	misalignment in	shown  columns
       if the length of	the date exceeds the fixed size	allocation.

AUTHOR
       Teemu Toivola <tst at iki dot fi>

SEE ALSO
       vnstatd(8), vnstati(1), vnstat.conf(5), proc(5),	ifconfig(8), units(7)

version	2.13			 FEBRUARY 2025			     VNSTAT(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=vnstat&sektion=1&manpath=FreeBSD+Ports+14.3.quarterly>

home | help