0

ライブラリの使用を開始しましたがPexpect、何らかの理由で式を一致させるのに問題があります。

たとえば、次のコードでは

   import pexpect

   child=pexpect.spawn('su')
   i=child.expect_exact('Password:')
   print "value of i is %d" %i
   if i==1:
          p=input("Please enter root password : ")
          child.sendline(p)
          child.sendline('echo piggy')

問題 i が 1 に等しくならない

4

4 に答える 4

0

最初に、このコメントを使用してスーパー ユーザーでログインします。pxssh は、こ​​のクラスは pexpect.spawn を拡張して、SSH 接続の設定を特殊化します。これにより、ログイン、ログアウト、およびシェル プロンプトを期待するためのメソッドが追加されます。

import pexpect
import pxssh

hostname ='172.16.0.120 -p 2222'
username = 'root'  # must you login in super user add this line
password = 'zilogic'
host = pxssh.pxssh()
host.login (hostname, username, password)
host.logfile = open(logfile, "w")
host.sendline ('whoami') 
print host.before

pxssh モジュールに使用します child.expect_exact('Password:') は必要ありません。このパスワードは、pxssh モジュールの処理を期待します。このリンクを参照してください。 Python: How can remote from my local pc to remoteA to remoteb to remote c using Paramiko pexpectを使用してリモートホストシステムでスーパーユーザー(root)にログインする方法は?

于 2013-04-25T06:42:44.753 に答える
0

IMO、 pexpect が答えの場合、間違った質問をしています。

この場合、おそらく sudo をより効果的に使用できます。特定のユーザーによって呼び出されたときに、パスワードを要求せずにルートとして実行するように構成できます。

于 2013-04-24T22:28:20.903 に答える