HP rp3440 HP Integrity and HP 9000 iLO MP Operations Guide, Fifth Edition - Page 53

Expect Script Example

Page 53 highlights

from a file local to your script. To automatically administer any part of the system during any stage of its operation, you can use the scripting tool to log in to the iLO MP, access the console, and send and receive commands in EFI or the operating system. NOTE: This guide is not meant as a substitute for instruction on various scripting tools that are available for automating command-line interfaces. The iLO MP TUI (when used with command-line arguments) was created with these types of scripting tools in mind to facilitate powerful automation capabilities. Expect Script Example The following provides a simple Expect script example with no timeouts and no error checking using telnet instead of SSH. #!/usr/local/bin/expect -f # # (Portions of) this Expect script (were) was generated by autoexpect on # Tue Nov 21 08:45:11 2006 # Expect and autoexpect were both written by Don Libes, NIST. # # Note that autoexpect does not guarantee a working script. It # necessarily has to guess about certain things. Two reasons a script # might fail are: # # 1) timing - A surprising number of programs (rn, ksh, zsh, telnet, # etc.) and devices discard or ignore keystrokes that arrive "too # quickly" after prompts. If you find your new script hanging up at # one spot, try adding a short sleep just before the previous send. # Setting "force_conservative" to 1 (see below) makes Expect do this # automatically - pausing briefly before sending each character. This # pacifies every program I know of. The -c flag makes the script do # this in the first place. The -C flag allows you to define a # character to toggle this mode off and on. set force_conservative 0 ;# set to 1 to force conservative mode even if ;# script wasn't run conservatively originally if {$force_conservative} { set send_slow {1 .1} proc send {ignore arg} { sleep .1 exp_send -s -- $arg } } #2) differing output - Some programs produce different output each time # they run. The "date" command is an obvious example. Another is # ftp, if it produces throughput statistics at the end of a file # transfer. If this causes a problem, delete these patterns or replace # them with wildcards. An alternative is to use the -p flag (for # "prompt") which makes Expect only look for the last line of output # (i.e., the prompt). The -P flag allows you to define a character to # toggle this mode off and on. # # Read the man page for more info. # # -Don # # (End of auto-expect generated content) # USER set mp_user "Admin" Text User Interface 53

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • 139
  • 140

from a file local to your script. To automatically administer any part of the system during any
stage of its operation, you can use the scripting tool to log in to the iLO MP, access the console,
and send and receive commands in EFI or the operating system.
NOTE:
This guide is not meant as a substitute for instruction on various scripting tools that
are available for automating command-line interfaces. The iLO MP TUI (when used with
command-line arguments) was created with these types of scripting tools in mind to facilitate
powerful automation capabilities.
Expect Script Example
The following provides a simple Expect script example with no timeouts and no error checking
using telnet instead of SSH.
#!/usr/local/bin/expect -f
#
# (Portions of) this Expect script (were) was generated by autoexpect on
#
Tue Nov 21 08:45:11 2006
# Expect and autoexpect were both written by Don Libes, NIST.
#
# Note that autoexpect does not guarantee a working script.
It
# necessarily has to guess about certain things.
Two reasons a script
# might fail are:
#
# 1) timing - A surprising number of programs (rn, ksh, zsh, telnet,
# etc.) and devices discard or ignore keystrokes that arrive "too
# quickly" after prompts.
If you find your new script hanging up at
# one spot, try adding a short sleep just before the previous send.
# Setting "force_conservative" to 1 (see below) makes Expect do this
# automatically - pausing briefly before sending each character.
This
# pacifies every program I know of.
The -c flag makes the script do
# this in the first place.
The -C flag allows you to define a
# character to toggle this mode off and on.
set force_conservative 0
;# set to 1 to force conservative mode even if
;# script wasn't run conservatively originally
if {$force_conservative} {
set send_slow {1 .1}
proc send {ignore arg} {
sleep .1
exp_send -s -- $arg
}
}
#2) differing output - Some programs produce different output each time
# they run.
The "date" command is an obvious example.
Another is
# ftp, if it produces throughput statistics at the end of a file
# transfer.
If this causes a problem, delete these patterns or replace
# them with wildcards.
An alternative is to use the -p flag (for
# "prompt") which makes Expect only look for the last line of output
# (i.e., the prompt).
The -P flag allows you to define a character to
# toggle this mode off and on.
#
# Read the man page for more info.
#
# -Don
#
# (End of auto-expect generated content)
#######################################################################
# USER
set mp_user "Admin"
Text User Interface
53