用pexcept操作遠程機器
#!/usr/bin/python
import pexpect
import pxssh
import getpass
import sys
hostname = raw_input('Enter the IP: ')
username = raw_input('username: ')
port = raw_input('port: ')
password = getpass.getpass('password: ')
root_pass =getpass.getpass('root_pass: ')
s=pxssh.pxssh()
s.login(hostname,username,password,original_prompt='[$#>]',port=port)
#如果提示超時就在/usr/lib/python2.7/site-packages/pxssh.py的self.read_nonblocking(size=10000,timeout=1)
#的上面添加 self.sendline() # time.sleep(0.5)
#兩行
s.sendline('su') #發送命令
x=s.expect(['Password']) #匹配命令生成的結果
if x==0:
s.sendline(root_pass)
y=s.expect(['root'])
if y==0:
print "su root success"
s.sendline('cd /opt/linux_newcheck/linux_newcheck_20120413')
z=s.expect(['linux_newcheck_20120413'])
if z==0:
print "Change directory success"
s.sendline('./linux_chk.sh 192.168.0.2')
while True:
index = s.expect(["ALL",pexpect.TIMEOUT])
if index == 0:
print "scanner ok"
print s.before #打印命令輸出的內容
break
elif index == 1:
print "scanner false"
sys.exit(1)
# return False
elif index == 2:
pass #continue to wait
s.logout()
#s.prompt() 這個方法是現實命令是否執行成功,如果是就返回ture,否則返回false
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.