通过python连接Linux命令行代码实例
时间:2020-02-18来源:系统城作者:电脑系统城
这篇文章主要介绍了通过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
打印结果:
- 26 ['(?i)assword', '***'] ***
- 5 ['(?i)Last login', True] True
- result -rw-r--r--. 1 root root 3167 Mar 13 11:24 /etc/rsyslog.conf
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
相关信息
-
linux 文件权限怎么解析
常用权限linux系统内有档案有三种身份 u:拥有者 g:群组 o:其他人这些身份对于文档常用的有下面权限:r:读权限,用户可以读取文档的内容,如用cat,more查看w:写权限,用户可以编辑文档x...
2024-07-07
-
如何使用WPSeku找出 WordPress 安全问题?
然而,如果我们遵循通常的 WordPress 最佳实践,这些安全问题可以避免。在本篇中,我们会向你展示如何使用 WPSeku,一个 Linux 中的 WordPress 漏洞扫描器,它可以被用来找出你安装...
2024-07-03