Linux多台机器跑python计算,paramiko python 多台机器for linux

#!/usr/bin/python2

# coding:utf-8

import paramiko

import sys

class Linux(object):

# 通过IP, 用户名,密码,超时时间初始化一个远程Linux主机

def __init__(self, ip, username, password, timeout=30):

self.ip = ip

self.username = user

self.password = passwd

self.timeout = timeout

# transport和chanel

self.t = ''

self.chan = ''

# 链接失败的重试次数

self.try_times = 3

def ssh_cmd(self, cmd):

try:

ssh = paramiko.SSHClient()

ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

ssh.connect(self.ip,22,self.username,self.password,timeout=5)

stdin,stdout,stderr = ssh.exec_command(cmd)

print(stdout.read())

# print(' ===== :: %s OK\n'%(ip))

ssh.close()

except Exception,e:

print('%s Error:: %s \n' %(ip, e))

def sftp_put(self, localfile, remotefile):

t = paramiko.Transport(sock=(self.ip, 22))

t.connect(username=self.username, password=self.password)

sftp = paramiko.SFTPClient.from_transport(t)

sftp.put(localfile, remotefile)

t.close()

if __name__ == "__main__":

args = sys.argv[1:]

print "args === ", args

ip_str = '10.33.81.'

user = 'root'

passwd = 'apoidea_ceph'

remotefile = r'/usr/local/bin/daemo.py'

localfile = r'/data/ansible/ansible_test/daemo.py'

num = 1

for i in range(160,172):

ip = ip_str + str(i)

print num,"=====",ip

num += 1

host = Linux(ip, user, passwd)

if args[0] == "copy":

host.sftp_put(localfile,remotefile)

elif args[0] == "cmd":

cmd = args[1]

host.ssh_cmd(cmd)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值