通過python連接Linux命令行代碼實例
更新時間:2020年02月18日 10:57:04 作者:TTyb
這篇文章主要介紹了通過python連接Linux命令行代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
這篇文章主要介紹了通過python連接Linux命令行代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
代碼如下
#!/usr/bin/python # -*- coding: utf-8 -*- '''https://www.ibm.com/developerworks/cn/linux/l-cn-pexpect2/index.html''' import pexpect import types username = "root" ip = "192.168.***.***" password = "****" pex = pexpect.spawn('ssh %s@%s' % (username, ip)) def _check(pattern, timeout=120): i = pex.expect(pattern, timeout=timeout) return i def sendcr(cmd): if pex == None: return 0 n = pex.send("%s\r" % cmd) return n def getexec(cmd): child = pexpect.spawn(cmd) child.expect(pexpect.EOF) return child.before if __name__ == '__main__': checklist1 = [["(?i)Connection refused", False], ["(?i)Host key verification failed.", False], ["(?i)VENUSTECH AUDIT SYSTEM MA1000", True], # ["(?i)#\[/]",True], # hpux ["(?i).+>", True], # windows [".+[>$#]\s*$", True], # debian ["(?i)Last login", True], ["(?i)access denied", False], ["(?i)NT_STATUS_LOGON_FAILURE", False], ["(?i)are you sure you want to continue connecting", "yes"], ["(?i)authentication fail(?!ure)", False], ["(?i)connection closed by remote host", False], ["(?i)login failed", False], ["(?i)login incorrect", False], ["(?i)need to be root", False], ["(?i)no route to host", False], ["(?i)not found", False], ["(?i)Bad secrets", False], ["(?i)incorrect password", False], ["(?i)permission denied", False], # ["(?i)terminal type",terminal_type], ["This private key will be ignored.", False], ["(?i)no route to host", False], ["(?i)press 'Enter' key to proceed", "\r"], ["(?i)Y/N", 'Y'], [pexpect.EOF, False], [pexpect.TIMEOUT, False], ["(?i)Enter passphrase for key .*:", password], ["(?i)assword", password], ["(?i)passwd", password], ["(?i)sername", username], ["(?i)(?<!sful )login", username], ["(?i)----------------------------------------------------------------", True]] checklist2 = [i[0] for i in checklist1] while True: i = _check(checklist2) print i, checklist1[i], checklist1[i][1] if (type(checklist1[i][1]) is types.BooleanType): if type(checklist1[i][1]): break else: sendcr(checklist1[i][1]) cmd = "ls -l /etc/rsyslog.conf" result = getexec(cmd) print "result", result
打印結(jié)果:
26 ['(?i)assword', '***'] *** 5 ['(?i)Last login', True] True result -rw-r--r--. 1 root root 3167 Mar 13 11:24 /etc/rsyslog.conf
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
您可能感興趣的文章:
- Python命令行參數(shù)定義及需要注意的地方
- 關(guān)于Python3的import問題(pycharm可以運行命令行import錯誤)
- python獲得命令行輸入的參數(shù)的兩種方式
- Python的3種運行方式:命令行窗口、Python解釋器、IDLE的實現(xiàn)
- 如何通過命令行進入python
- 深入淺析Python 命令行模塊 Click
- python shell命令行中import多層目錄下的模塊操作
- 用什么庫寫 Python 命令行程序(示例代碼詳解)
- 解決Python命令行下退格,刪除,方向鍵亂碼(親測有效)
- 詳解python中的三種命令行模塊(sys.argv,argparse,click)
相關(guān)文章
python中將\\uxxxx轉(zhuǎn)換為Unicode字符串的方法
這篇文章主要介紹了python中將\\uxxxx轉(zhuǎn)換為Unicode字符串的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-09-09Python 創(chuàng)建新文件時避免覆蓋已有的同名文件的解決方法
今天小編就為大家分享一篇Python 創(chuàng)建新文件時避免覆蓋已有的同名文件的解決方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-11-11pycharm 使用tab跳出正在編輯的括號(){}{}等問題
這篇文章主要介紹了pycharm 使用tab跳出正在編輯的括號(){}{}等問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-02-02Python+OpenCV實現(xiàn)實時眼動追蹤的示例代碼
這篇文章主要介紹了Python+OpenCV實現(xiàn)實時眼動追蹤的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-11-11