Provided by: vnstat_2.6-1_amd64 bug

NAME

       vnstatd - daemon based database updating for vnStat

SYNOPSIS

       vnstatd [-Ddnpsv?]  [--alwaysadd] [--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 flexible and robust way for updating the database
       that vnstat(1) uses. 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  is
       a  database present in the database directory that has been specified in the configuration
       file. By default, if no database is found, a database will be created during startup  with
       entries  for  all  available interfaces excluding pseudo interfaces lo, lo0 and sit0. This
       automatic database entry creation behaviour can be  disabled  using  the  --noadd  option.
       Alternatively,  it is possible to allow the daemon to create new database entries whenever
       previously unseen interfaces become visible using the --alwaysadd option.

       The daemon will proceed to track the availability of  monitored  interfaces,  process  the
       interface  traffic  statistics  and  write  new  values  to  the  database at a configured
       interval. As a result, the daemon ends up spending  most  of  the  time  sleeping  between
       updates.

OPTIONS

       --alwaysadd
              Enable  automatic creation of new database entries for previously unseen interfaces
              even if the database directory already contains  a  database  when  the  daemon  is
              started.  New  database entries will also get created for new interfaces seen while
              the daemon is running. Pseudo interfaces lo, lo0 and sit0 are excluded from getting
              added.

       --config file
              Use file as configuration file instead of using automatic 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 database entries for all available interfaces if
              the daemon is started with no 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  enough
              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.

       /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.

       /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 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 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 a shorter update interval 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)