私は一般的に期待してスクリプトを書くのが新しいです。私は、ネットワーク機器の設定を引き出すときに、私の人生を少し楽にするためにいくつかのスクリプトを作ろうとしています。私は、デバイスへのSSHへの基本的な期待スクリプトを作成し、設定を保存することができました。SSHのためのBash/Expectスクリプト
これを拡張して、私が今すぐ持っているように、1つではなく複数のIPアドレスに接続できるようにします。私は別の行に各IPといくつかの異なるIPアドレスとlist.txt
という名前のファイルがあります。
expectスクリプトをこれらのIPアドレスのそれぞれに接続させ、スクリプト内の残りのタスクも実行するには、私は何が必要でしょうか?ここで
は、私がこれまで持っていたスクリプトを期待です:#!/usr/bin/expect -f
#Tells interpreter where the expect program is located. This may need adjusting according to
#your specific environment. Type ' which expect ' (without quotes) at a command prompt
#to find where it is located on your system and adjust the following line accordingly.
#
#
#Use the built in telnet program to connect to an IP and port number
spawn ssh 192.168.1.4 -l admin
#
#The first thing we should see is a User Name prompt
#expect "login as:"
#
#Send a valid username to the device
#send "admin"
#
#The next thing we should see is a Password prompt
expect "Password:"
#
#Send a vaild password to the device
send "password\n"
#
#If the device automatically assigns us to a priviledged level after successful logon,
#then we should be at an enable prompt
expect "Last login:"
#
#Tell the device to turn off paging
#
#After each command issued at the enable prompt, we expect the enable prompt again to tell us the
#command has executed and is ready for another command
expect "[email protected]"
#
#Turn off the paging
send "set cli pager off\n"
#
#Show us the running configuration on the screen
send "show config running\n"
#
# Set the date.
set date [timestamp -format %C%y%m%d]
#
#Test output sent to file with a timestamp on end
#-noappend will create a new file if one already exists
log_file -noappend /home/test.cfg$date
#
expect "[email protected]"
#
#Exit out of the network device
send "exit\n"
#
#The interact command is part of the expect script, which tells the script to hand off control to the user.
#This will allow you to continue to stay in the device for issuing future commands, instead of just closing
#the session after finishing running all the commands.`enter code here`
interact
私はbashスクリプトでこれを統合する必要がありますか?もしそうなら、list.txt
ファイルの1行を読み込み、それをIP /ホスト変数として使用して、次のものを読んで繰り返しますか?
sshキーを使用するようにデバイスを設定できますか?はいの場合は、まったく期待する必要はありません。 –