python批量操作Linux服务器脚本,ssh密码登录(执行命令、上传、下载)(一)
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密码登录(执行命令、上传、下载)(一)的更多相关文章
- python批量操作Linux服务器脚本,key登录(执行命令、上传、下载)(二)
-*- 2 #批量操作linux服务器(执行命令,上传,下载) 3 #!/usr/bin/python 4 import paramiko 5 import datetime ...
- 记crt 在windows与linux服务器之间利用ftp进行文件的上传下载
我们首先来熟悉一些相关的命令以及操作: ls #展示linux服务器当前工作目录[你连接sftp时所处的目录]下的所有文件以及文件夹 lcd F:\niki #绑定你在windo ...
- [转]python3之paramiko模块(基于ssh连接进行远程登录服务器执行命令和上传下载文件的功能)
转自:https://www.cnblogs.com/zhangxinqi/p/8372774.html 阅读目录 1.paramiko模块介绍 2.paramiko的使用方法 回到顶部 1.para ...
- linux下常用FTP命令 上传下载文件【转】
1. 连接ftp服务器 格式:ftp [hostname| ip-address]a)在linux命令行下输入: ftp 192.168.1.1 b)服务器询问你用户名和密码,分别输入用户名和相应密码 ...
- 初级版python登录验证,上传下载文件加MD5文件校验
服务器端程序 import socket import json import struct import hashlib import os def md5_code(usr, pwd): ret ...
- Linux 普通用户拿到root权限及使用szrz命令上传下载文件
1.如何拿到root权限 在shell里如果看到你的命令输入行最前面显示的是 $符号,说明目前账号只有系统的普通权限. 输入:sudo su 这时能看到shell的输入行最前面已经显示的是#号,说明已 ...
- linux使用命令上传下载文件 -- lrzsz
之前都是用Xftp工具在本地和linux系统之间上传下载文件,最近觉得麻烦,因为平时用Xshell连接,要传输文件的时候还要额外使用别的工具,下面是lrzsz的安装和简单的使用过程: 详细的使用可以s ...
- linux下的ssh工具之,本地上传到linux服务器and Linux服务器文件另存为本地。非sftp工具。
首先,当你只有一个ssh工具可以连接linux,但你有想把文件在 linux 和windows(本地)直接的切换.其实可以的: 本文参考 1.将本地的文件,放到ssh远程的linux服务器上: 首先要 ...
- ssh远程登录+查看系统版本+使用scp命令上传下载
ssh远程登录命令简单实例 ssh命令用于远程登录上Linux主机. 常用格式:ssh [-l login_name] [-p port] [user@]hostname 更详细的可以用ssh ...
随机推荐
- CentOS 关闭图形用户界面
1 centos 7以下版本 vim /etc/inittab :initdefault: #改为 :initdefault: 2. centos 7.x版本 rm -f /etc/systemd/s ...
- ZooKeeper系列(9):ZooKeeper实现分布式Barrier和Queue
1. 快速开始 1.1概述: Zookeeper是Hadoop的一个子项目,它是分布式系统中的协调系统,可提供的服务主要有:配置服务.名字服务.分布式同步.组服务等. 1.2 使用常见 1.2.1 统 ...
- MySQL提供了以下三种方法用于获取数据库对象的元数据
MySQL提供了以下三种方法用于获取数据库对象的元数据: 1)show语句 2)从INFORMATION_SCHEMA数据库里查询相关表 3)命令行程序,如mysqlshow, mysqldump 用 ...
- bool操作
基本类型转换的问题 bool类型没有操作. 类型转换 结论一: 想把xxx转化成yy类型. yy(xxx) 结论二: 能够表示False的数据: 0, "", [], {}, se ...
- 零基础学习python_爬虫(53课)
1.Url的格式简单介绍,如下图: 2.我们要对网站进行访问,需要用到python中的一个模块或者说一个包吧,urllib(这个在python2中是urllib+urllib2,python3将这两个 ...
- 《机器学习实战》Logistic回归
注释:Ng的视频有完整的推到步骤,不过理论和实践还是有很大差别的,代码实现还得完成 1.Logistic回归理论 http://www.cnblogs.com/wjy-lulu/p/7759515.h ...
- 2.python知识点总结
1.什么是对象?什么是类? 对象是对类的具体表达,类是对象的抽象表达. 类只是为所有的对象定义了抽象的属性与行为. —————————————————————————————————————————— ...
- Linux:常用命令【转载】
转载于:https://www.cnblogs.com/yjd_hycf_space/p/7730690.html 系统信息 arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架 ...
- 《算法》第四章部分程序 part 12
▶ 书中第四章部分程序,包括在加上自己补充的代码,图的几种补充数据结构,包括无向 / 有向符号图,有权边结构,有边权有向图 ● 无向符号图 package package01; import edu. ...
- python学习笔记_week7
一.面向对象编程进阶 静态方法只是名义上归类管理,实际上在静态方法里访问不了类或实例中的任何属性 class Dog(object): def __init__(self,name): self.na ...