FC2ブログ

下流ネットワークエンジニアの生活

上流工程を夢見る下流工程のネットワークエンジニアがネットワーク技術や資格、身の回りのことを情報発信! Juniper Cisco YAMAHA DELL D-Link AlaxalA F5 CCNA CCNP CCIE ネットワークスペシャリスト

Juniper JUNOSデバイスにSSH接続してコンフィグやログを取得するシェルスクリプト expect 自動化

2017.07.24 (Mon)


JuniperのEXスイッチを大量に管理しているが、
結構な頻度でログやコンフィグの一斉取得をする機会がある。

いちいち手動で機器にログインしてコマンドを叩くのは手間なので、
シェルスクリプトを作ってみた。

巷ではAnsibleやChefが流行っているようだが、
このスクリプトは古風なexpoctを使っている。





-------------------------------------------------------------------------
#!/bin/bash

###アカウント###
USER=user
PASS=pass

###取得コマンド###
COMM="show config"

###対象機器###
###IP ホスト名###
LIST="192.168.10.1 gw1
192.168.10.2 gw2
192.168.10.254 sw1"


###処理###
IFS=$'\n'
for line in `echo "${LIST}" |grep -v ^#`
do

IP=`echo $line | cut -d' ' -f1`
HOST=`echo $line | cut -d' ' -f2`

expect -c "
set timeout 5
spawn ssh -l ${USER} ${IP}
expect \"Are you sure you want to continue connecting (yes/no)?\" {
send \"yes\n\"
expect \"Password:\"
send \"${PASS}\n\"
} \"Password:\" {
send \"${PASS}\n\"
}
expect \"${USER}@${HOST}>\"
send \"${COMM} | no-more\n\"
expect \"${USER}@${HOST}>\"
send \"exit\n\"
interact

done
-------------------------------------------------------------------------







関連記事
スポンサーサイト



コメント


管理者のみに表示

トラックバック