要求輸入yes還是no,嘗試了幾種方法,發現可以通過paramiko解決,**如下:
import paramiko
#get an paramiko connectiondef get_ssh_interact_conn(server_ip, username, passwd):
#parameter is server ip, username, passwordt = paramiko.transport((server_ip, 22))
t.connect(none, username, passwd)
chan = t.open_session()
# timeout
chan.settimeout(30)
#open remote terminal
, 如果要輸入的命令很長比如有2000個字元,那麼久需要設定pty的寬度,否則如果使用預設寬度,可能導致要執行的命令被中間截斷,比如預設寬度是5,而傳送的命是「ps -ef | grep welcom」,那麼在傳送命令時候就可能變成,「ps -ef \r | grep welcom」,從而導致命令執行失敗
chan.get_pty(width=2048)
#activate terminal
chan.invoke_shell()
return chan
def get_live_tags_list(svn_list_command):# this method can input yes automatically, when encounter 'store password unencrypted (yes/no)? '
live_revision_version_list =
chan = get_ssh_interact_conn('10.202.10.202', 'root', 'root')
chan.send(svn_list_command + '
\n')
time.sleep(3)
live_tags_info = chan.recv(2048)
print live_tags_info
if 'store password unencrypted (yes/no)'
in live_tags_info:
print chan.send('yes
\n')
time.sleep(3)
result = chan.recv(2048)
print result
chan.send(svn_list_command + 'chan.close()\n')
if name == '__main__':
get_list_tags_list('svn list ')
有人推薦expect,我覺得有點麻煩,這個感覺更簡單,有沒有其他更好的方法,也沒有研究過
乙個簡單的人機互動指令碼 ssh
下面獻上乙個簡單的人機互動指令碼,用來展示expect方法的強大而美妙的功能。該指令碼能夠檢測ssh命令執行之後的提示語,自動匹配完成密碼輸入。複製下面的指令碼,儲存到檔案ssh.sh中即可執行。1 若沒有執行許可權,通過 chmod a x ssh.sh 新增 2 若檔案ssh.sh在window...
人機互動模擬題
1.人機互動學是乙個重要的學科分支,如果要有效地設計人機互動的產品和服務,遵循十項準則是什麼 1確實理解計算機和裝置的任務流程,避免引入不必要的流程 2確定目標使用者的屬性和能力,充分考慮人與人之間的區別 3充分利用人和工具各自在完成任務時的擅長之處,達到完美平衡 4為所有可能從中受益的使用者群體進...
人機互動筆記2
樣式優先順序 id高於class 標籤內樣式高於標籤外樣式 class有兩個屬性的話,後邊的覆蓋前邊的樣式 charset utf 8 css練習title rel stylesheet type text css href css mycss.css type text css pdiv p1.p...