cisco デバイスで構成のバックアップを自動化しようとしてきました。タスクを実行するスクリプトを実行することはできましたが、エラーを処理するようにスクリプトを改善しようとしています。
ログイン エラー (アクセス拒否メッセージ) を取得するための「send \"$pass\r\"」の直後と、「expect \": end\"」行の 2 つのステップでエラーをキャッチする必要があると思います。発行されたコマンドがデバイスから構成を取得できたことを確認します。
期待するスクリプトで作業する場合、いくつかの方法を見てきましたが、bash スクリプトを使用して、.txt ファイルからデバイスのリストを提供できるようにしたいと考えています。
#!/bin/bash
data=$(date +%d-%m-%Y)
dataOntem=$(date +%d-%m-%Y -d "-1 day")
hora=$(date +%d-%m-%Y-%H:%M:%S)
log=/firewall/log/bkpCisco.$data.log
user=MYUSER
pass=MYPASS
for firewall in `cat /firewall/script/firewall.cisco`
do
VAR=$(expect -c "
spawn ssh $user@$firewall
expect \"assword:\"
send \"$pass\r\"
expect \">\"
send \"ena\r\"
expect \"assword:\"
send \"$pass\r\"
expect \"#\"
send \"conf t\r\"
expect \"conf\"
send \"no pager\r\"
send \"sh run\r\"
log_file -noappend /firewall/backup/$firewall.$data.cfg.tmp
expect \": end\"
log_file
send \"pager 24\r\"
send \"exit\r\"
send \"exit\r\"
")
echo "$VAR"
done