clogin is an expect(1) script to automate the process of logging into a Cisco router, Catalyst switch,
Arista switch, Extreme switch, Juniper ERX/E-series, or Redback router. There are complementary scripts
for A10, Alteon, Avocent (Cyclades), Bay Networks (nortel), Brocade, Cisco Small Business devices, ADC-
kentrox EZ-T3 mux, Fortinet firewalls, Foundry, Cisco Firepower, HP Procurve switches and Cisco AGMs,
Hitachi routers, Juniper Networks, MRV optical switch, Mikrotik routers, Netscreen firewalls, Nokia
(Alcatel-Lucent), Netscaler, Riverbed Steelhead, Riverstone, Netopia, Cisco WLCs, Extreme devices and
Xirrus arrays or Arrcus routers, named a10login,alogin,avologin,blogin,brlogin,csblogin,elogin,flogin,fnlogin,fxlogin,hlogin,htlogin,jlogin,mrvlogin,mtlogin,nlogin,noklogin,nslogin,rblogin,rivlogin,tlogin,wlogin,xlogin, and xilogin, respectively. Lastly, plogin is a poly-login script using
the router.db(5) files of rancid groups and the rancid.types.base(5) and rancid.types.conf(5) files to
determine which login script to execute for the device type of the given device.
clogin reads the .cloginrc file for its configuration, then connects and logs into each of the routers
specified on the command line in the order listed. Command-line options exist to override some of the
directives found in the .cloginrc configuration file.
The command-line options are as follows:
-S Save the configuration on exit, if the device prompts at logout time. This only has affect when
used with -c.
-V Prints package name and version strings.
-c Command to be run on each router list on the command-line. Multiple commands maybe listed by
separating them with semi-colons (;). The argument should be quoted to avoid shell expansion.
-d Enable expect debugging.
-E Specifies a variable to pass through to scripts (-s). For example, the command-line option
-Efoo=bar will produce a global variable by the name Efoo with the initial value "bar".
-e Specify a password to be supplied when gaining enable privileges on the router(s). Also see the
password directive of the .cloginrc file.
-f Specifies an alternate configuration file. The default is $HOME/.cloginrc.
-h Display usage line and exit.
-i Enter interactive mode after processing -[cx] options.
-[mM] Display .cloginrc information for matching lines; either the first match (-m) or all matches (-M),
then exit. The display format is:
look-up variable:filename:line number: glob
-p Specifies a password associated with the user specified by the -u option, user directive of the
.cloginrc file, or the Unix username of the user.
-s The filename of an expect(1) script which will be sourced after the login is successful and is
expected to return control to clogin, with the connection to the router intact, when it is done.
Note that clogin disables log_user of expect(1)when-s is used. Example script(s) can be found in
share/rancid/*.exp.
-t Alters the timeout interval; the period that clogin waits for an individual command to return a
prompt or the login process to produce a prompt or failure. The argument is in seconds.
-u Specifies the username used when prompted. The command-line option overrides any user directive
found in .cloginrc. The default is the current Unix username.
-v Specifies a vty password, that which is prompted for upon connection to the router. This
overrides the vty password of the .cloginrc file's password directive.
-w Specifies the username used if prompted when gaining enable privileges. The command-line option
overrides any user or enauser directives found in .cloginrc. The default is the current Unix
username.
-x Similar to the -c option; -x specifies a file with commands to run on each of the routers. The
commands must not expect additional input, such as 'copy rcp startup-config' does. For example:
show version
show logging
-y Specifies the encryption algorithm for use with the ssh(1) -c option. The default encryption type
is often not supported. See the ssh(1) man page for details. The default is 3des.