HP StorageWorks 2300 Family Modular Smart Array CLI reference guide (500912-002, July 2010)

12 Using the CLI
Using CLI interactively
By default the CLI is an interactive application. When you are logged into the CLI, the CLI waits for a
command to be entered and then responds to it.
The following example shows interactively starting a Telnet session, logging into the CLI, executing a
command to show free (available) disks, and exiting the CLI:
$: telnet 172.22.5.55
Login: monitor
Password: ********
product
System Name: Test
System Location: Lab
Version: version
# show disks free
Location Serial Number Vendor Rev How Used Type Size
Rate(Gb/s) SP Status
-------------------------------------------------------------------------------
1.2 3NM4APFR000098248HBV vendor rev AVAIL SAS 146.8GB
3.0 OK
-------------------------------------------------------------------------------
# exit
Using CLI scripts
CLI commands can be scripted using a Telnet client like Expect or a Perl library. The following example
shows how to construct a script using a Perl library for Telnet communication.
use Net::Telnet;
sub cLogin {
$telnet->open($_[0]);
$telnet->waitfor(/(login|username)[: ]*$/i);
$telnet->print("$_[1]");
$telnet->waitfor(/password[: ]*$/i);
$telnet->print("$_[2]");
# either got a login or a prompt
@ok = $telnet->waitfor(/(#|login:*) /i);
if ($debug_commands == 1) { print "-"; print @ok; print "-\n"; }
if ($ok[1] =~ m/login/gi)
{
return 0;
}
else
{
return 1;
}
}
$ipAddr = $ARGV[0];
$username = $ARGV[1];
$password = $ARGV[2];
$telnet = new Net::Telnet ( Timeout=>10,
Errmode=>'die',
Prompt => '/\# $/i');
if ( !cLogin($ipAddr, $username, $password) == 1 )
{
print("Error: $username user failed to log in. Exiting.\n");
$telnet->close;
exit(0);
}