python paramiko 执行命令

参考

http://wangwei007.blog.51cto.com/blog/68019/1058726

http://youzao.blog.51cto.com/3946111/1348903

在node1上想对node2执行命令,标准的答案

1.比较直观

#!/usr/bin/env python

import paramiko

hostname=‘192.168.0.102‘

username=‘root‘

password=‘abc‘

port=22

paramiko.util.log_to_file(‘paramiko.log‘)

s=paramiko.SSHClient()

s.set_missing_host_key_policy(paramiko.AutoAddPolicy())

s.connect(hostname = hostname,port=port,username=username, password=password)

stdin,stdout,stderr=s.exec_command(‘free;df -h‘)

print stdout.read()

2.类的形式

#!/usr/bin/python

# coding=utf8

import paramiko,datetime,os,threading

#class run_cmd(threading.Thread):

class run_cmd():

def __init__(self,hostname=None,password=None,username=None,port=None,echo_cmd=None):

#threading.Thread.__init__(self)

self.hostname=hostname

self.password=password

self.username=username

self.port=port

self.echo_cmd=echo_cmd

#self.thread_stop=False

def run(self):

paramiko.util.log_to_file(‘paramiko.log‘)

s=paramiko.SSHClient()

s.set_missing_host_key_policy(paramiko.AutoAddPolicy())

s.connect(hostname = self.hostname,username=self.username, password=self.password)

stdin,stdout,stderr=s.exec_command(self.echo_cmd)

return stdout.read()

s.close()

def stop(self):

self.thread_stop=True

if __name__==‘__main__‘:

f = file(‘/home/python/filelist1‘,‘r‘)

port=22

c = f.readlines()

for x in c:

hostname = x.split(‘::‘)[0]

password = x.split(‘::‘)[1]

username = x.split(‘::‘)[2]

remote = x.split(‘::‘)[4].strip(‘\n‘)

echo_cmd=‘/bin/find  %s -maxdepth 1 -type d -mmin -1200‘ %(remote)

#echo_cmd=‘free;df -h‘

cmd_thread=run_cmd(hostname,password,username,port,echo_cmd)

result=cmd_thread.run()

print result

f.close()

如果运行有错误,请参考python 增量同步远程文件夹

时间: 2024-11-05 10:31:57

python paramiko 执行命令的相关文章

python系统管理第1章,python中执行命令,python函数,面向对像编程,通过import语句实现代码复用

1.Python中执行命令 例子1: [[email protected] opt]# cat pyls.py  #!/usr/bin/env python #python wrapper for the ls command import subprocess     subprocess.call(["ls","-l"]) 例子2: [[email protected] opt]# cat pysysinfo.py  #!/usr/bin/env python

python批量执行命令发送文件

#!/usr/bin/python #-*- coding: utf-8 -*- import paramiko import datetime import os,tab,sys from multiprocessing import Process, Pool host_list = ( ('192.168.1.127','root','123456'), ('192.168.1.137','root','123456'), ('192.168.1.143','root','123456')

paramiko执行命令超时的问题

问题:paramiko远程执行命令,需要等到命令返回信息,如果命令执行时间比较长,返回信息就需要等很久 方案:1.使用nohup + 待执行命令 + & ,使用后台执行的方式,应该可以快速返回 2.设置paramiko的执行命令等待超时时间 stdin, stdout, stderr = self.client.exec_command(cmd,timeout=10,get_pty=True)

python登录执行命令

#-*- coding: utf-8 -*- #!/usr/bin/python import paramiko import threading import getpass def ssh2(ip,username,passwd,cmd): try: ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ssh.connect(ip,22,username,passwd,tim

python 远程执行命令、上传、下载举例

使用python中的 paramiko 实现远程操作,需要安装 paramiko 模块. # vi pssh.py #!/usr/bin/python #coding=utf-8 ''' Created on Apr 13, 2016 @author: root ''' import paramiko class PSSH(): def __init__(self,ip,sort,username,password): self.ip = ip self.sort = sort self.use

python远程执行命令

import paramiko def sshclient_execmd(hostname, port, username, password, execmd):     paramiko.util.log_to_file("paramiko.log")     s = paramiko.SSHClient()     s.set_missing_host_key_policy(paramiko.AutoAddPolicy())     s.connect(hostname=hostn

python 远程执行命令、发布文件

最近有个需求,想获取部分服务器上运行了那些应用服务,一台台去看,太费劲了,参考牛人写了此脚本,后期再加上一个前端页面做一些简单的运维维护的工作,凑合着先用着,待完善, 注:此脚本依懒于安装fabric ,安装过程参考: http://5973819.blog.51cto.com/5963819/1532334 1 #!/usr/bin/env python 2 #coding:utf8 3 #####################################################

python中执行命令行read结果

import os r = os.popen('python -V').read() print(type(r)) print(r) # os.system('python -V') # os.system('tree') 退出进程 size_str = os.popen('adb shell wm size').read() if not size_str: print('请安装 ADB 及驱动并配置环境变量') sys.exit() 原文地址:https://www.cnblogs.com/

python模块paramiko的上传下载和远程执行命令

#!/usr/bin/python # -*- coding: utf-8 -*- import paramiko,os,datetime server_ip = '192.168.1.123' server_user = 'root' server_passwd = '10241010' server_port = 22 #local_dir='C:\Python27' #remote_dir='/soft2/nba/' def ssh_connect(): ssh = paramiko.SS