1 #-*- coding: utf- -*-
 2 #批量操作linux服务器(执行命令,上传,下载)
 3 #!/usr/bin/python
 4 import paramiko
 5 import datetime
 6 import os
 7 import threading
 8 def ssh2(ip,username,passwd,cmd):
 9     try:
         paramiko.util.log_to_file('paramiko________.log')
         ssh = paramiko.SSHClient()
         ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
         ssh.connect(ip,,username,passwd,timeout=)
         for m in cmd:
             stdin,stdout,stderr = ssh.exec_command(m)
             #stdin.write("Y")   #简单交互,输入 ‘Y’
             out = stdout.readlines()
             # outerr = stderr.readlines()
             #屏幕输出
             for o in out:
                 print o,
             # for i in outerr:
             #     print i,
                 print '%s\tOK\n'%(ip)
         ssh.close()
     except :
         print '%s\tError\n'%(ip)
 def download(ip, username, passwd, local_dir, remote_dir):
    try:
         paramiko.util.log_to_file('paramiko_download.log')
         t = paramiko.Transport((ip,))
         t.connect(username=username,password=passwd)
         sftp = paramiko.SFTPClient.from_transport(t)
         files = sftp.listdir(remote_dir)
 
 
         for f in files:
             print ''
             print '############################'
             print 'Beginning to download file  from %s  %s ' % (ip, datetime.datetime.now())
             print 'Downloading file:', os.path.join(remote_dir, f)
             sftp.get(os.path.join(remote_dir, f), os.path.join(local_dir, f))#下载
             print 'Download file success %s ' % datetime.datetime.now()
             print ''
             print '############################'
         t.close()
    except:
         print "connect error!"
 
 
 def upload(ip, username, passwd, local_dir, remote_dir):
     try:
         paramiko.util.log_to_file('paramiko_upload.log')
         t = paramiko.Transport((ip, ))
         t.connect(username=username, password=passwd)
         sftp = paramiko.SFTPClient.from_transport(t)
         #files = sftp.listdir(remote_dir)
         files = os.listdir(local_dir)
         for f in files:
             print ''
             print '############################'
             print 'Beginning to upload file  to %s  %s ' % (ip, datetime.datetime.now())
             print 'Uploading file:', os.path.join(local_dir, f)
             sftp.put(os.path.join(local_dir, f), os.path.join(remote_dir, f))#上传
             print 'Upload file success %s ' % datetime.datetime.now()
             print ''
             print '############################'
         t.close()
     except:
         print "connect error!"
         print ip, "fail!"
 
 
 if __name__=='__main__':
 #  cmd = ['ls -lh /export/servers/mysql/log/mysql.log']#你要执行的命令列表
     cmds=open("D:\\batch\\cmds.txt") #从文件读取命令
     cmd=cmds.readlines()
     cmds.close()
     username = "root"  #用户名
     #passwd = "xxxx"    #单台服务器时启用----------------------
     #ip='192.168.12.19'  #单台服务器时启用----------------------
     local_dir = "D:\\batch\\tmp"  #本地服务器目录
     remote_dir = "/tmp/" #远程服务器目录
     #threads = []   #多线程
     print "Begin......"
     hosts=open("D:\\batch\\list.txt") #本地服务器列表
     host=hosts.readlines()
     hosts.close()
     for list in host:
         line = list.split()
         ip = line[].strip()
         pwd = line[].strip()
         # print ip,
         # print pwd,
         # b=threading.Thread(target=upload,args=(ip,username,pwd,local_dir,remote_dir))
         # b.start()
         a=threading.Thread(target=ssh2,args=(ip,username,pwd,cmd))
         a.start()

python批量操作Linux服务器脚本,ssh密码登录(执行命令、上传、下载)(一)的更多相关文章

  1. python批量操作Linux服务器脚本,key登录(执行命令、上传、下载)(二)

       -*-   2 #批量操作linux服务器(执行命令,上传,下载)   3 #!/usr/bin/python   4 import paramiko   5 import datetime   ...

  2. 记crt 在windows与linux服务器之间利用ftp进行文件的上传下载

    我们首先来熟悉一些相关的命令以及操作: ls      #展示linux服务器当前工作目录[你连接sftp时所处的目录]下的所有文件以及文件夹 lcd  F:\niki      #绑定你在windo ...

  3. [转]python3之paramiko模块(基于ssh连接进行远程登录服务器执行命令和上传下载文件的功能)

    转自:https://www.cnblogs.com/zhangxinqi/p/8372774.html 阅读目录 1.paramiko模块介绍 2.paramiko的使用方法 回到顶部 1.para ...

  4. linux下常用FTP命令 上传下载文件【转】

    1. 连接ftp服务器 格式:ftp [hostname| ip-address]a)在linux命令行下输入: ftp 192.168.1.1 b)服务器询问你用户名和密码,分别输入用户名和相应密码 ...

  5. 初级版python登录验证,上传下载文件加MD5文件校验

    服务器端程序 import socket import json import struct import hashlib import os def md5_code(usr, pwd): ret ...

  6. Linux 普通用户拿到root权限及使用szrz命令上传下载文件

    1.如何拿到root权限 在shell里如果看到你的命令输入行最前面显示的是 $符号,说明目前账号只有系统的普通权限. 输入:sudo su 这时能看到shell的输入行最前面已经显示的是#号,说明已 ...

  7. linux使用命令上传下载文件 -- lrzsz

    之前都是用Xftp工具在本地和linux系统之间上传下载文件,最近觉得麻烦,因为平时用Xshell连接,要传输文件的时候还要额外使用别的工具,下面是lrzsz的安装和简单的使用过程: 详细的使用可以s ...

  8. linux下的ssh工具之,本地上传到linux服务器and Linux服务器文件另存为本地。非sftp工具。

    首先,当你只有一个ssh工具可以连接linux,但你有想把文件在 linux 和windows(本地)直接的切换.其实可以的: 本文参考 1.将本地的文件,放到ssh远程的linux服务器上: 首先要 ...

  9. ssh远程登录+查看系统版本+使用scp命令上传下载

    ssh远程登录命令简单实例   ssh命令用于远程登录上Linux主机.   常用格式:ssh [-l login_name] [-p port] [user@]hostname 更详细的可以用ssh ...

随机推荐

  1. Chapter2:Qt5模板库,工具类及控件

    2.1 字符串类 QString类保存16位Unicode值,提供了丰富的操作,查询和转换等函数.  (1):QString提供了一个二元的"+"操作符用于组合两个字符串  (2) ...

  2. mysql视图 触发器 事物 函数 存储过程

    一 视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需使用[名称]即可获取结果集,可以将该结果集当做表来使用. 使用视图我们可以把查询过程中的 ...

  3. 求计算两个时间的差(DateTime类和TimeSpan类)

    日期时间数据是项目设计过程中经常需要处理的信息,C#提供了DateTime类和TimeSpan类来处理日期时间数据.下面介绍说明Datetime类和TimeSpan类的使用 //初始化DateTime ...

  4. tomcat7.0安装笔记

    1. 解压,新增系统环境变量CATALINA_HOME,值为tomcat所在目录,如E: tomcat7.0 PS:安装JAVA时没有配置系统变量JAVA_HOME,导致报错无法启动tomcat,新建 ...

  5. 网易云音乐mp3外链、真实地址下载方法

    一个网易音乐外链地址长期有效,很简单的方法: 第一步打开网易云音乐,随便找到一首歌,播放,复制网址的ID, 例如:杨钰莹的心雨,网址是: http://music.163.com/#/song?id= ...

  6. tensorflowwindows安装

    1.在python官网下载3.5 64位版本的python,并进行安装 https://www.python.org/ 2.进行安装,配置环境变量 3.命令行执行pip3 install numpy ...

  7. python中的replace

    replace用于修改列表.元组.字典中的元素, 例子: 1 li = ["alec", " aric", "Alex", "To ...

  8. <转载>ant使用指南详细入门教程 http://www.jb51.net/article/67041.htm

    这篇文章主要介绍了ant使用指南详细入门教程,本文详细的讲解了安装.验证安装.使用方法.使用实例.ant命令等内容,需要的朋友可以参考下 一.概述 ant 是一个将软件编译.测试.部署等步骤联系在一起 ...

  9. python3自动生成并运行bat批处理,并重定向输入消除黑窗口

    #coding:utf-8import os #bat文件的内容(temp.bat)bat_name='temp.bat's1='''echo offipconfigecho Hello world! ...

  10. Hadoop 3.0 安装

    1.      下载Hadoop 3.0 http://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-3.0.0/hadoop-3. ...