1

それで、ようやくexscriptが適切に機能するようになりました(と思います)。私はそれをテストしたかったので、動作すると思われる単純な python スクリプトをセットアップしました。

from Exscript.util.interact import read_login
from Exscript.protocols import SSH2

account = read_login()
conn = SSH2()
conn.connect('router.domain.com')
conn.login(account)

conn.execute('terminal length 0')

conn.execute('show version')
print conn.response

conn.send('exit\r')
conn.close()

スクリプトを実行すると、次のように表示されます。

kidd@server scripts$ python test1.py
Please enter your user name [kidd]: 
Please enter your password:

約 20 秒間そこに留まると、次のようになります。

Traceback (most recent call last):
  File "test1.py", line 7, in <module>
    conn.login(account)  
  File "/usr/lib/python2.7/site-packages/Exscript/protocols/Protocol.py", line 597, in login
    self.auto_app_authorize(app_account, flush = flush)
  File "/usr/lib/python2.7/site-packages/Exscript/protocols/Protocol.py", line 846, in auto_app_authorize
    self.get_driver().auto_authorize(self, account, flush, bailout)
  File "/usr/lib/python2.7/site-packages/Exscript/protocols/drivers/one_os.py", line 43, in auto_authorize
    conn.app_authorize(account, flush, bailout)
  File "/usr/lib/python2.7/site-packages/Exscript/protocols/Protocol.py", line 820, in app_authorize
    self._app_authenticate(account, password, flush, bailout)
  File "/usr/lib/python2.7/site-packages/Exscript/protocols/Protocol.py", line 690, in _app_authenticate
    raise TimeoutException(msg)
Exscript.protocols.Exception.TimeoutException: Buffer: '\rThis is a private system \r\n \r\nrouter>'

簡単なものがありませんか?ルーターに(通常のユーザーとして、非特権モードで)ログインしようとしているだけで、show version を実行してからログアウトします。どんな助けでも大歓迎です。ありがとう。

4

1 に答える 1

3

構成したバナーが、Exscript がデバイスから返されることを期待しているプロンプトを台無しにしているようです。プロンプトをより適切に処理するために Exscript 内のプロトコル ドライバーを微調整するか、バナーが適切に設定されていることを確認する (またはすべて一緒に削除する) ことをお勧めします。

于 2012-12-28T17:30:26.920 に答える