2017-02-27 5 views
0

私は、複数のルータ構成をバックアップするための簡単なexpectスクリプトを書いています。これは正常に動作しますが、デバイスのリストが大きくなると時間がかかります。 期待値でspawn_idに渡された変数の値を取得

は私が同時にSSHセッションを起動する方法を見つけることを試みて行く article出くわし:

# spawn all connections 
foreach conn $allconnections { 

spawn telnet $conn 
lappend spawn_id_list $spawn_id 

} 

# run expect script for all connections individually 
foreach id $spawn_id_list { 

# this is important - for unknown (to me) reasons 
set spawn_id $id 

send "your_send_message" 
expect "your_expect_pattern" 

} 

これが動作しているようですが、私は今の名にちなんで名付けられたバックアップファイルを作成するには、別の課題に直面しています実際のデバイス$ connがspawn_idに渡され、$ id_configs.txtに基づいてバックアップファイルを作成すると、デバイスリストの各行が読み込まれるごとにNが増える番号である "expN"だけが得られます。私はファイル名として使用するために実際の$ id値を戻す方法を試してきましたが、解決策をまだ見つけていません。

皆様のご意見をお待ちしております。前もって感謝します!

答えて

0
% set pid [spawn telnet xx.xx.xxx.xx] 
spawn telnet xx.xx.xxx.xx 
29353 
% set pid 
29353 

spawnは、生成されるプログラムのプロセスIDを返します。それを変数に保存し、それをさらに使用することができます。

関連する問題