import os
import paramiko
import time
import xlrd
import pandas as pdclass ServerSsh:def __int__(self):passdef ssh_server(self, ip, user, user_passwd):"""远程服务器模块:param ip: 服务器ip:param user: 登录用户:param user_passwd: 密码:return: 返回登录会话对象"""ssh_client = paramiko.SSHClient()ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy())try:ssh_client.connect(hostname=ip, port="22", username=user, password=user_passwd)return ssh_clientexcept Exception as e:print(ip + '密码错误,登录失败')ssh_client.close()return '登录失败'def read_xsxl(self, file_path, sheet_name):"""读excel文件,返回sheet页内容:param file_path: 文件路径:param sheet_name: sheet名称:return: 返回excel结果"""try:df = pd.read_excel(file_path, sheet_name=sheet_name)return dfexcept Exception as e:return "文件读取失败"def ssh_cmd(self, server_ip, user, user_passwd, cmd, root_passwd):"""执行命令:param server_ip: 服务器ip:param user: 登录用户:param user_passwd: 登录密码:param cmd: 执行命令:param root_passwd: root密码:return:返回执行结果"""ssh_client = self.ssh_server(server_ip, user, user_passwd)if ssh_client != '登录失败':if user != 'root':ssh = ssh_client.invoke_shell()time.sleep(0.1)# 切换root用户ssh.send('su - root\n')buff = ''# 拼出返回结果while not buff.endswith('Password: '):resp = ssh.recv(9999)buff += resp.decode('utf-8')ssh.send(root_passwd + '\n')# 拼出返回结果buff = ''while "root@" not in buff:resp = ssh.recv(9999)buff += resp.decode('utf-8')# 拼出返回结果ssh.send(cmd + '\n')buff = ''while "root@" not in buff:resp = ssh.recv(9999)buff += resp.decode('utf-8')result = buffssh.close()return resultelse:stdin, stdout, stderr = ssh_client.exec_command(cmd)result = stdout.read()ssh_client.close()return resultelse:return server_ip +'命令执行失败'if __name__ == '__main__':a = ServerSsh()flie_path = 'C:\\Users\\admin\\PycharmProjects\\pythonProject\\venv\\Scripts\\zznode\\serveripinfo.xlsx'sheet_name = 'Sheet1'user = 'test'passwd = '123456'cmd = 'touch 1.txt'root_passwd = '12345678'if '文件读取失败' == date_obj:print('文件读取失败')else:date_obj = a.read_xsxl(flie_path, sheet_name)for ip in date_obj['服务器信息']:result = a.ssh_cmd(server_ip=ip, user=user, user_passwd=passwd, cmd=cmd, root_passwd=root_passwd)print(ip + result)

【python远程linux、执行命令、读取excel】相关推荐

  1. linux执行命令脚本,Linux - 执行命令与脚本

    01 - Linux执行多条命令 方法1:在命令行下可以一次性粘贴多条语句,shell会依次执行并输出结果 方法2:在一个命令行中,用分号将各个命令隔开或者使用&&连接各个命令 示例: ...

  2. python远程linux服务器执行命令_基于使用paramiko执行远程linux主机命令(详解)

    paramiko是python的SSH库,可用来连接远程linux主机,然后执行linux命令或者通过SFTP传输文件. 关于使用paramiko执行远程主机命令可以找到很多参考资料了,本文在此基础上 ...

  3. linux中spawn远程执行,linux 远程登录执行命令

    @(Linux 命令脚本) 方便自动化运维部署,在多台机器上自动执行命令. ssh 需要输入密码, 所以使用 expect 进行交互,从执行文本读取远程主机 IP, 登录名和密码后执行远程登录,执行命 ...

  4. java使用2种方法操作liberoffice把word转pdf,pdf加水印,java远程调用Linux执行命令

    文章目录 libreoffice下载地址 安装 (第一种) java调用 (第二种 推荐) java调用Linux命令转pdf java远程连接Linux执行命令(少数情况) linux安装windo ...

  5. linux启动本地远程服务,如何使用SSH在本地控制远程服务器执行命令

    通过SSH在本地控制远程服务器执行命令,如果每次都要登录到远程服务器真的好麻烦,起始通过SSH就可以远程执行 在本地使用 ssh $RemoteNode    可以在执行远程机器上的命令,例如 ssh ...

  6. 如何用Python语言编写源程序,读取Excel中数据,并画出柱状图?

    现在,随着计算机的普及,以及数据量的增多,对大型数据的分析已经是我们手算不能解决的了,必须借助计算机:那么,学习计算机其实也和我们学习中文.英文一样,要学习他们的写作规则,掌握其中原理.所以,我们首先 ...

  7. linux运行驱动的命令,「驭龙」Linux执行命令监控驱动实现解析

    本文是「驭龙」系列的第三篇文章,对照代码解析了驭龙在Linux执行命令监控驱动这块的实现方式.在正式宣布驭龙项目开源之前,YSRC已经发了一篇关于驭龙EventLog 读取模块迭代历程的文章. 0x0 ...

  8. 在Linux执行命令报错”Arg list too long”的原因分析

    http://www.yunweipai.com/archives/558.html 在Linux执行命令报错"Arg list too long"的原因分析 吞拿鱼手卷 于 3 ...

  9. python ssh2 库 远程登录 执行命令 文件获取

    官网地址: https://github.com/ParallelSSH/ssh2-python API文档地址: https://ssh2-python.readthedocs.io/en/late ...

最新文章

  1. 直播APP开发注意事项汇总
  2. 使用c#接入华为云-内容审核
  3. jq输出html 单引号引号转义符,javascript - 由于JSON中的单引号转义,jQuery.parseJSON抛出“无效的JSON”错误...
  4. 【NLP论文推荐】 掌握实体关系抽取必读的文章
  5. 巴什博弈:取石子游戏
  6. 光纤尾纤的型号和作用有哪些?
  7. JavaScript 效果 - so cool
  8. 上网行为安全之流量管理技术
  9. matlab 打开xls文件,matlab中读取excel的xls文件
  10. 结构体知识——声明,初始化,成员访问,传参
  11. 2022年武汉市高新技术企业各区县申报条件补贴、高企迁移奖励补助20万
  12. 又一百度杰出科学家离职,百度研究院成中国AI的黄埔军校
  13. 什么叫资讯,资讯是什么?
  14. Visual Studio 2008 (vs 2008)简体中文专业版、团队版及SP1下载地址
  15. python实现截取视频中特定帧进行保存功能
  16. 新手村 - 第四站,认识成交量
  17. GPS北斗卫星授时系统(NTP同步时钟设备)应用和发展
  18. Windows下误删EFI分区重建引导简单教程
  19. 皮尔森相关系数python
  20. 将ip转换为16进制

热门文章

  1. 用Java Swing设计Email邮箱地址注册的图形用户界面程序
  2. pta7-2 公路村村通
  3. tp框架使用easywechat二次开发微信创建菜单失败
  4. 《也作瑶池》 ——惊闻许玮伦逝去
  5. CAD制图初学入门:CAD选项配置的使用技巧
  6. 【转】SD卡、MiniSD卡、MicroSD卡大小与引脚分布
  7. 企业飞信初探:无需APP也能聊天
  8. Bias - Variance Decomposition
  9. 怎么实现黑白负片爆闪效果,有Vegas就足够啦
  10. 电脑出现负片情况,底片效果怎么解决?(win10颜色滤镜功能)