xenial (1) vnstatd.1.gz

Provided by: vnstat_1.14-1ubuntu2_amd64 bug

NAME

       vnstatd - daemon based database updating for vnStat

SYNOPSIS

       vnstatd  [ -Ddnpsv?  ] [ --config file ] [ --daemon ] [ --debug ] [ -g group ] [ --group group ] [ --help
       ] [ --noadd ] [ --nodaemon ] [ --pidfile file ] [ --sync ] [ --u user ] [ --user user ] [ --version ]

DESCRIPTION

       The purpose of vnstatd is to provide a more flexible and robust way for updating vnstat(1) databases than
       what  using cron for updating can provide. The daemon makes possible updating databases more often but at
       the same time causes less disk access since data can be cached and written only later to disk at  a  user
       configurable interval. The availability of each interface is automatically tracked which removes the need
       for additional scripts to be implemented and called when an interface comes online or goes offline.

       vnstatd is the command for starting the daemon. The daemon can either fork itself to run as a  background
       process or stay attached to the terminal.  It supports logging to a user selectable file or using syslog.

       Once  started, the daemon will read vnstat.conf(5) if available and then check if there are any databases
       available in the database directory that has been specified in the configuration file. New databases will
       be  created for all available interfaces excluding pseudo interfaces lo, lo0 and sit0 if no databases are
       found during startup.  This behaviour can be disabled if needed. The daemon will then  proceed  to  track
       the  availability  of monitored interfaces, process the interface traffic statistics and write new values
       to databases at a configured interval. As a result, the daemon ends up spending most of the time sleeping
       between updates.

OPTIONS

       --config file
              Use file as configuration file instead of using normal configuration file search functionality.

       -d, --daemon
              Fork process to background and run as a daemon.

       -D, --debug
              Provide  additional  output for debug purposes. The process will stay attached to the terminal for
              output.

       -g, --group group
              Set daemon process group to group during startup.  group can be either the name of the group or  a
              numerical group id. This option can only be used when the process is started as root.

       --noadd
              Disable  automatic creation of new databases for all available interfaces if the daemon is started
              with zero database found. Pseudo interfaces lo, lo0 and sit0 are excluded from getting added.

       -n, --nodaemon
              Stay in foreground attached to the current terminal and start the update process.

       -p, --pidfile file
              Write the process id to file and use it for locking so that another instance of the daemon  cannot
              be started if the same file is specified.

       -s, --sync
              Synchronize internal counters in the database with interface counters for all available interfaces
              before starting traffic monitoring.  Use this option if the traffic between the previous  shutdown
              and  the  current  startup of the daemon needs to be ignored. This option isn't required in normal
              use because the daemon will automatically synchronize the internal counters after a system reboot,
              if enought time has passed since the daemon was previously running or if the internal counters are
              clearly out of sync.

       -u, --user user
              Set daemon process user to user during startup.  user can be either the login of  the  user  or  a
              numerical user id. This option can only be used when the process is started as root.

       -v, --version
              Show current version of the daemon executable.

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

CONFIGURATION

       The  behaviour  of  the  daemon  is  configured  mainly  using the configuration keywords UpdateInterval,
       PollInterval and SaveInterval in the configuration file.

       UpdateInterval defines in seconds how often the interface data is fetched and updated.  This  is  similar
       to  the  run  interval  for  alternative  cron  based updating.  However, the difference is that the data
       doesn't directly get written to disk during updates.

       PollInterval defines in seconds how often the list  of  available  interfaces  is  checked  for  possible
       changes.  The  minimum  value  is  2  seconds  and the maximum 60 seconds.  PollInterval also defines the
       resolution for other intervals.

       SaveInterval defines in minutes how often cached interface data is written to disk.   A  write  can  only
       occur  during the updating of interface data. Therefore, the value should be a multiple of UpdateInterval
       with a maximum value of 60 minutes.

       The default values of UpdateInterval 30, SaveInterval 5 and PollInterval 5 are usually suitable for  most
       systems  and  provide  a  similar  behaviour as cron based updating does but with a better resolution for
       interface changes and fast interfaces.

       For embedded and/or low power systems more tuned configurations are  possible.   In  such  cases  if  the
       interfaces are mostly static the PollInterval can be increased to around 10-30 seconds and UpdateInterval
       set to 60 seconds. Higher values up to 300 seconds are possible if the interface  speed  is  10  Mbit  or
       less.   SaveInterval can be increased for example to 15, 30 or even 60 minutes depending on how often the
       data needs to be viewed.

SIGNALS

       The daemon is listening to signals SIGHUP, SIGINT and SIGTERM.  Sending the SIGHUP signal to  the  daemon
       will cause cached data to be written to disk, a rescan of the database directory and a reload of settings
       from the configuration  file.  However,  the  pid  file  location  will  not  be  changed  even  if  it's
       configuration setting has been modified.

       SIGTERM and SIGINT signals will cause the daemon to write all cached data to disk and then exit.

FILES

       /var/lib/vnstat/
              Default database directory. Files are named according to the monitored interfaces.

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

       /var/log/vnstat.log
              Log file that will be used if logging to file is enable and no other  file  is  specified  in  the
              config file.

       /var/run/vnstat.pid
              File  used  for  storing the process id if no other file is specified in the configuration file or
              using the command line parameter.

RESTRICTIONS

       Updates needs 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. This isn't an issue for 64-bit kernels but at  least  one  update  every  hour  is  always
       required  in  order  to  provide proper input.  With 32-bit kernels, the maximum time between two updates
       depends on how fast the interface can transfer 4 GiB. Calculated theoretical times are:

              10 Mbit:        54 minutes
              100 Mbit:        5 minutes
              1000 Mbit:      30 seconds

       However, for 1000 Mbit interfaces updating once every minute is  usually  a  usable  solution  if  faster
       updates can't be used.

       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.

AUTHOR

       Teemu Toivola <tst at iki dot fi>

SEE ALSO

       vnstat(1), vnstati(1), vnstat.conf(5), signal(7)