icpld(1)

NAME

icpld - Internet Connection Performance Logging Daemon

SYNOPSIS

icpld -ip <ip> [OPTIONS] or icpld -ip6 <ip> [OPTIONS] alternatively a mixture of both

DESCRIPTION

icpld forks into the background and checks for downtime in a network connection. You can set it to try against any ip, either on the internet, or on your local network in different intervals. As from version 0.6.0 icpld also supports IPv6 addresses. ICPLD can monitor two connection at once, one IPv4 connection, and an IPv6 one. You can also limit the use to one connection only, by not specifying an ip. If you only want to monitor an IPv6 connection, you simply do not specify an IPv4 ip. In case you have both an IPv4 and an IPv6 ip specified in the configuration file, you may override this by specifying the -4 or the -6 switch. Giving one of these tells icpld to only monitor this. Hence -6 only monitors an IPv6 connection, even though there is an IPv4 ip specified in the configuration file. As the name implies, icpld writes a log as it is running. This logfile is by default located in ~/.icpld and is called 'log'. If you want to specify another location for your logfile, you can do this by either edit the post logFile in the configuration file, or specify one using the -logfile option. Normally, when you monitor two connections, they are both logged into this default file, but you can however specify a special log file for your IPv6 connection, using the -logfile6 switch. See below for more options

OPTIONS

  Note that some of these options are only available when
  icpld has been compiled with IPv6 support.

-h, --help
    Shows the help section and exits -ip This switch is required unless there is an IPv6 address specified, and decides which ip ICPLD will probe for ICMP replies

-ip6
    This specifies which IPv6 ip icpld will probe for ICMP replies. This is optional unless the -6 switch is used. Note that the use of one, does not exclude the other. In other words; you can monitor both an IPv6 and an IPv4 connection with the same icpld process

-fbip
    Fallback ip. This is the ip ICPLD will double check against if the ip specified with -ip is not responding

-fbip6
    Same as fbip, but for the IPv6 monitoring.

-detach
    Giving this argument to icpld will daemonize a process that is currently running in the foreground. Useful if you want to monitor icpld for a while, and then fork it without having to restart icpld and "pollute" the log files

-6  This option will tell icpld to use IPv6 only. Mainly used to ignore IPv4 entries in the configuration file

-4  This option is used to ignore IPv6 entries in the configuration file

-nd Prevent ICPLD from daemonizing

-d  Force ICPLD to damonize (this is default, but can be used to override a configuration file setting)

-s  Silent. Produces no output what so ever. Has no effect in combination with -nd (naturally)

-m  This option is only useful in combination with -logfile at which point -m tells icpld to output the whole logfile at once, without breaks. Virtually the same as cat ~/.icpld/log

-status
    Shows the current state of icpld and the connection

-log
    Displays the performance log

-turn
    Turns the log file over. Old one is saved as ~/.icpld/log.n where n is the next available number. A stamp is put in the new log, telling you when it was turned

-reset
    Resets ICPLD state and log and quit a current ICPLD process

-quit
    Terminates a running ICPLD process. Use this at all times, rather than sending signals manually

-interval
    Sets the interval in which ICPLD will check for an available connection (default 10 seconds)

-dinterval
    Sets the interval with which icpld will check for an available connection, once it has been marked as unavailable. Will override -interval in case of downtime. The default is 6 seconds

-pint
    Tells icpld how frequent it should send ICMP-packets once it is in a checking cycle. This option is equivalent to ping -i <double> and should not be confused with -interval Default is one packet per second

-nobeep
    Do not generate a beep when the connection comes back up (beeping is only activated when combined with the -nd switch)

-logfile
    Specifies which logfile to use rather than the default ~/.icpld/log Note that this has an impact on -log as well as -turn, if you use icpld with different -log options. A log which is located in another place than what -logfile says, will not be turned.

-logfile6
    Same as above, but for the IPv6 log. Note that the same file can be used for both connections.

-htmlfile
    ICPLD can, if you want, duplicate the log file into HTML format. This switch tells ICPLD where to put the html output.

-htmlfile6
    Same as above, but for the duplication of the IPv6 log either specified by -logfile6 or within the configuration file

-errfile
    This option tells icpld where to save the log which contains the output of ping. The output is only written if the ping failed. This is useful for debugging since you can not only see when the connection was broken, but also what caused the downtime.

-errfile6
    Same as the above, but for the IPv6 connection

-err
    Displays the contents of the errors file (default: ~/.icpld/errors)

-err6
    Same as the above, but for the IPv6 errors file

-config
    Specifies which config file to use. The default is /usr/local/etc/icpld.conf Usage of the config file at all is optional as ICPLD can be operated throughoutly by command line as well.

-iface
    Specifies which source interface or (on some platforms) address to use for the checking

-v, --version
    Display version info and exits

CONFIG FILE
ICPLD automatically looks for a configuration file in /usr/local/etc/icpld.conf If none is to be found, it will use the command line arguments, hence the configuration file is not necessary, but may be handy and helpful. The location of the config file may be altered by supplying the -config switch at command line. Note that all command line arguments overrides the values in the configuration file. Available config options:

ip  This is the target machine, which we will try to establish contact with
    Example: ip=192.168.0.1

ip6 This is the target machine, which we will check an IPv6 connection against.
    Example: ip6=3ffe::1

fbip
    Fallback ip. ICPLD will double check the connection status if the first ip is not responding, by probing this ip Example: ip=192.168.0.2

fbip6
    Same as above, but for the IPv6 connection monitoring
    Example: fbip6=3ffe::2

interval
    Will determine how often we will check for response from the machine specified with ip. The unit is seconds
    Example: interval=10

dinterval
    Determines how often we will check for an available connection after it has been marked as unavailable. The unit is seconds
    Example: dinterval=5

pint
    Tells icpld how frequent it should send ICMP-packets once it is in a checking cycle. This option is equivalent to ping -i <double> and should not be confused with -interval Default is one packet per second.
    Example: pint=1.2

iface
    Specifies which interface or (on some platforms) address to use for the checking. This is optional, and if excluded or left blank, the kernel default will be used. This only is useful for determining which trunk is down if you are on a multi-connected system. logFile Specifies the location of the log file we will be stamping.
    Example: logFile=~/.icpld/log

logFile6
    Same as above, but for the IPv6 log. Note that this option may be set identicaly to logFile
    Example: logFile6=~/.icpld/log

htmlFile
    Same as logFile, but the HTML formatted log.
    Example: htmlFile=~/public_html/icpld.html

htmlFile6
    Same as above, but the IPv6 log duplication. Note that this may be set identicaly to the htmlFile option
    Example: htmlFile6=~/public_html/icpld.html

daemonize
    ICPLD will either stay in the foreground, or fork to the background depending on the value of daemonize. daemonize is of boolean type, meaning it is either 'true' or 'false'.
    Example: daemonize=false

nobeep
    If ICPLD is active in the foreground, it will generate a beep once the connection is back up after downtime. To disable this, set nobeep to true. nobeep is of boolean type, meaning it is either 'true' or 'false'
    Example: nobeep=true

cmd4dn
    This is a system command which will be executed whenever the IPv4 connection drops. This can be useful when you wish to be alerted whenever your connection goes down.

cmd4up
    Same as above, but when the connection comes back up from downtime

cmd6dn
    This is the same as cmd4dn but for the IPv6 connection

cmd6up
    Same as cmd4up but for the IPv6 connection

errfile
    This option tells icpld where to save the log which contains the output of ping. The output is only written if the ping failed.

errfile6
    Same as the above, but for the IPv6 connection

Example of a valid and acceptable configuration file
    for users which does not have an IPv6 connection to monitor : # ICPLD config file (/etc/icpld.conf) ip=192.168.0.1 fbip=192.168.0.2 interval=9 dinterval=5 pint=1.0 daemonize=true logFile=~/.icpld/log htmlFile=~/public_html/icpld.html errfile=~/.icpld/errors nobeep=false cmd4dn=play ~/mysounds/awwww.wav cmd4up=play ~/mysounds/yipee.wav

Example of a valid configuration file for
    monitoring both an IPv4 and an IPv6 connection: ip=192.168.0.1 ip6=3ffe::1 fbip=192.168.0.2 fbip6=3ffe::2 interval=9 dinterval=5 pint=1.0 daemonize=true logFile=~/.icpld/log logFile6=~/.icpld/log htmlFile=~/public_html/icpld.html htmlFile=~/public_html/icpld-v6.html errfile=~/.icpld/errors errfile6=~/.icpld/errors nobeep=false cmd4dn=play ~/mysounds/awwww.wav cmd4up=play ~/mysounds/yipee.wav cmd6dn=play ~/mysounds/awwww.wav cmd6up=play ~/mysounds/yipee.wav

AUTHOR

Erik Ljungstrom <erik@ibiblio.org>