文档章节

python 远程执行服务器上的脚本

lemosa
 lemosa
发布于 2015/08/05 14:09
字数 296
阅读 653
收藏 1

最近工作需要,需要校验一些不同服务器上相同文件的一致性,因为服务器较多手动执行该操作会比较繁琐。研究了一段时间发现python的paramiko模块非常适合该项操作。简要编码如下,未上传从数据库服务器dao获取服务器列表等内容。

#!/usr/bin/env python
#-*- coding: utf-8 -*-
import paramiko
def ssh2(ip,username,password,cmd):
    try:
        ssh = paramiko.SSHClient()
        ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
        ssh.connect(ip,22,username,password,timeout=5)
        for m in cmd:
             stdin,stdout,stderr = ssh.exec_command(m)
             stdin.write("Y")
             out = stdout.readlines()
          # 以下两行注释用来执行所有命令和脚本的输出,本程序不用所以注视
          #   for o in out:
          #       print o
        print '%s\t服务器登录执行命令成功\n' % (ip)
        ssh.close()
    except:
        print '%s\t服务器登录异常,请检查\n' % (ip)
    return out
if __name__ == '__main__':
    #cmd = ['sh /home/bea1/for_md5.sh','cat file_md5_list.txt']
    cmd = ['cat file_md5_list.txt'] #阅读文件内容,并获得相关md5码
    username = 'bea1'
    password = 'bea11234'
    threads = []
    print "Begin...."
    ssh_list_95 = ssh2('10.10.141.95',username,password,cmd)   
    ssh_list_147 = ssh2('10.10.134.147','bea1','bea1',cmd) 
    if ssh_list_95[0] == ssh_list_147[0]:
        print "The md5 =="
        print "95  " + ssh_list_95[0]
        print "147 " + ssh_list_147[0]
    else:
        print "error!"


© 著作权归作者所有

lemosa
粉丝 1
博文 3
码字总数 1515
作品 0
东城
私信 提问
Jenkins安装与配置(Flask+Gunicorn及React)

服务器:阿里云 操作系统:Ubuntu16.04 后台:python,Flask+gunicorn 前端:react 安装Java Jenkins依赖java,因此必须先安装java。 输入 出现版本号则安装成功。 安装Jenkins 如果遇到下面...

刘开心_8a6c
2018/10/09
0
0
python调用powershell、远程执行bat

python调用本地powershell方法 1、现在准备一个简陋的powershell脚本,功能是测试一个IP列表哪些可以ping通: function test_ping($iplist){ } test_ping args[0] python简陋的调用方法: # ...

zhoujie0111
2013/12/31
0
0
Python RPC 远程调用脚本之 RPyC 实践

最近有个监控需求,需要远程执行集群每个节点上的脚本,并获取脚本执行结果,为了安全起见不需要账号密码登陆节点主机,要求只需要调用远程脚本模块的方法就能实现。 总结下python进行远程调...

大数据之路
2015/06/28
0
0
轻量级项目部署神器:Fabric

如果你搜一圈 "Fabric "关键字,你会发现 90% 的资料都是过时的,因为现在 Fabric 支持 Python3,但是它又不兼容旧版 Fabric。所以,如果你按照那些教程去操作的话根本跑不通。而这篇文章是给...

刘志军
2018/12/27
0
0
用了这个几个Python内置小工具,可以让你的工作效率提升一倍

我们将会介绍4个Python解释器自身提供的小工具。 这些小工具在笔者的日常工作中经常用到, 减少了各种时间的浪费, 然而,却很容易被大家忽略。 每当有新来的同事看到我这么使用时, 都忍不住...

Python新世界
2018/07/24
0
0

没有更多内容

加载失败,请刷新页面

加载更多

热点图heatMap.js V2.0 研究笔记 及应用

https://blog.csdn.net/rongchaoliu/article/details/47830799 调用方法 function init() { $.ajax({ url: "${request.contextPath}/refresh?type=1", type: "get",......

yan_liu
16分钟前
1
0
Kubernetes 支持 OpenAPI 的新功能

Open API 让 API 提供者可以定义自己的操作和模型,并让开发者可以自动化的生成喜欢语言的客户端,用以和 API 服务器通信。Kubernetes 已经支持 Swagger 1.2(OpenAPI 规范的前身)有一段时间...

xiangyunyan
20分钟前
0
0
深入分析Zookeeper原理

本章重点: 1.了解zookeeper 及zookeeper 的设计猜想 2. zookeeper集群角色 3. 深入分析ZAB协议 4. 从源码层面分析leader选举的实现过程 5. 关于zookeeper的数据存储  Zookeeper的由...

须臾之余
23分钟前
2
0
Spring Cloud Eureka 常用配置详解,建议收藏!

前几天,栈长分享了 《Spring Cloud Eureka 注册中心集群搭建,Greenwich 最新版!》,今天来分享下 Spring Cloud Eureka 常用的一些参数配置及说明。 Spring Boot 的配置参考Java技术栈微信...

Java技术栈
41分钟前
1
0
分布式项目(七)consul 服务注册与发现

说到分布式自然就离不开分布式和微服务的话题,简单聊一下。 微服务是一种软件架构方式,或者说一个一种结构设计风格,它并不是标准,它的逻辑是把一个整体服务按业务拆分成不同独立的服务,...

lelinked
41分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部