Python之命令行交互模塊

模塊:pexpect

簡介:可以實現命令行內自動捕捉關鍵字,自動輸入內容並執行

#實現交互pexpect模塊
#先要安裝軟件包pexpect
#-*-coding:utf-8 -*-
#實現遠程登錄
def ssh():
    import pexpect,sys
    child = pexpect.spawn("/usr/bin/sh -c 'ssh -p 22 [email protected]'")		#定義一個對象
    child.expect("yes/no")				#捕捉該對象出現的關鍵詞
    logfile = open('log.txt','wb')			#生成一個日誌文件
    child.logfile = logfile				#將輸出內容保存到logfile對象文件
    index = child.expect(['yes/no','password'])				#定義多個輸出
    if index == 0:					#如果輸出爲“'yes/no'”時執行如下語句
    	child.sendline("yes")					#如果捕捉到的話輸入“yes”
    	child.expect("password:")				#捕捉是否有關鍵詞“password:”			
    	child.sendline("jia1314")				#捕捉到後輸入
    elif index == 1:							#如果輸出爲“'password'”時執行如下語句
    	child.sendline("jia1314")
    child.expect("#")						#捕捉終端提示符“#”
    child.sendline("who")
    child.expect("#")
    logfile.close()
#ssh()
#實現長時間連接操作
def long_ssh():
	import pexpect.pxssh
	import getpass
	try:
		s = pexpect.pxssh.pxssh()				#創建pxssh對象
		hostname = '192.168.3.2'					#定義主機
		username = 'root'					#定義用戶
		password = 'jiakb'			#定義密碼
		s.login(hostname,username,password)				#登錄服務器
		s.sendline('uptime')			#執行命令
		s.prompt()					#匹配命令提示符,多條命令時每次都要加這一條
		s.sendline('who')				#執行多次命令
		print("----------loginout---------")	#中間可以插入一些自定義東西
		s.logout()			#退出登錄
	except pxssh.ExceptionPxssh as e:		#捕捉登錄錯誤
		print("pxssh faild on login")
		print(str(e))
#long_ssh()

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章