# -*- coding: utf-8 -*-
"""
Created on Wed Mar 20 10:15:16 2019 @author: Kuma 1、
ssh连接服务器 2、
scp获取安装脚本及安装包
1)sftp传输 3、
执行安装脚本 """ import paramiko #pip3 install paramiko
import logging class sshOperate(): def __init__(self):
#创建SSHClient对象
self.ssh = paramiko.SSHClient() def sshLogin(self, ip, username, password):
try:
#允许将信任的主机自动加入到host_allow 列表,此方法必须放在connect方法的前面
self.ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 建立连接
self.ssh.connect(ip,port,user,password,timeout = 10)
except paramiko.AuthenticationException:
logging.warning("username or password error")
return 1001
except paramiko.ssh_exception.NoValidConnectionsError:
logging.warning("connect time out")
return 1002
except:
logging.warning('unknow error')
print("Unexpected error:", sys.exc_info()[0])
return 1003
return 1000 def executeCommand(self,command):
#执行命令,输出结果在stdout中,如果是错误则放在stderr中
stdin, stdout, stderr = self.ssh.exec_command(command)
print(stdout.read().decode()) def sftp(self, ip, user, passwd):
transport = paramiko.Transport((ip, 22))
transport.connect(username=user, password=passwd)
sftp = paramiko.SFTPClient.from_transport(transport)#如果连接需要密钥,则要加上一个参数,hostkey="密钥"
sftp.put('clear_reload_1.5.sh', '/home/user/clear_reload_1.5.sh')
#sftp.put('jcf-platform-1.5.2-20190315-RUN.tar.gz', '/home/user/exefile') #大文件传的太慢了
transport.close()#关闭连接 def sshLogout(self):
#logging.warning('logout')
#断开连接
self.ssh.close() if __name__ == '__main__':
# 服务器相关信息,下面输入你个人的用户名、密码、ip等信息
#ip = "10.xxx.xx.xxx"
#port = 22
user = "user"
#password = "passwd"
shFile = "shFile"
exeFile = "exeFile"
ipDict = {
"10.xxx.xxx.xxx" :"passwd"
} mySsh = sshOperate()
for ip, password in ipDict.items():
mySsh.sshLogin(ip, user, password)
mySsh.sftp(ip, user, password)
mySsh.executeCommand("chmod 777 " + shFile)
#mySsh.executeCommand("./" + shFile + " " + exeFile)
mySsh.sshLogout()

ssh操作服务器的更多相关文章

  1. 使用PSSH批量SSH操作Linux服务器

    http://www.opstool.com/article/266 服务器多了,有一个烦恼就是如何批量快速操作一堆服务器.这里我推荐一下经常使用利器pssh.这个工具给我的工作带来了莫大的帮助. 简 ...

  2. Python 进行 SSH 操作,实现本地与服务器的链接,进行文件的上传和下载

    Python 进行 SSH 操作,实现本地与服务器的链接,进行文件的上传和下载 2018年5月26日 19:03 阅读 375 评论 7 我本地和服务器的连接一直使用的是 Xshell 5,而在与服务 ...

  3. Linux基础知识第六讲,远程管理ssh操作

    目录 Linux基础知识第六讲,远程管理ssh操作 一丶什么是SSH 1.什么是SSH 2.了解域名跟端口 二丶SSH命令以及远程连接linux进行维护 1.ssh命令格式 2.scp远程终端拷贝文件 ...

  4. 【转帖】远程显示(操作) 服务器 GUI 程序(图形化界面) (基于 X11 Forwarding + Centos + MobaXterm)

    远程显示(操作) 服务器 GUI 程序(图形化界面) (基于 X11 Forwarding + Centos + MobaXterm) https://zhuanlan.zhihu.com/p/310 ...

  5. ssh连接服务器

    1.命令行操作 第一步输入  :ssh 用户名@服务器外网ip 第二步:输入密码,回车 看到welcome提示信息即为登陆成功 输入:exit 退出 2.客户端操作 windows下载ssh软件,安装 ...

  6. 远程显示(操作) 服务器 GUI 程序(图形化界面) (基于 X11 Forwarding + Centos + MobaXterm)

    在做 数据分析(数据挖掘 或 机器学习)的时候,我们经常需要绘制一些统计相关的图表,这些统计.绘图的程序常常是跑在服务器上的,可是服务器出于性能和效率的考虑,通常都是没有安装图形化界面的,于是这些统计 ...

  7. Mac上使用ssh连接服务器title显示服务器的ip

    Mac上使用ssh连接服务器title显示服务器的ip 使用Mac开发时,管理的服务器过多时,会搞混乱.可能有时啪啪啪一顿操作,最后发现操作错了机器. 解决方案 在远程服务器上,编辑vim /etc/ ...

  8. paramiko模块(远程操作服务器)

    paramiko模块(远程操作服务器) django+paramkio实现远程某些服务器执行命令+上传文件 用于帮助开发者通过代码远程连接服务器,并对服务器进行操作. pip3 install par ...

  9. Mac 无密码 SSH 登录服务器

    Mac 无密码 SSH 登录服务器,只需要简单三步,不再需要记住账号密码,快速进入服务器 第一步,生成密钥对 在当前用户下创建.ssh目录 mkdir ~/.ssh 使用命令ssh-keygen生成密 ...

随机推荐

  1. webapi put 404

    windows server 2016  IIS  webapi   404 error In IIS select your website and double-click Handler Map ...

  2. nginx 出现504 Gateway Time-out的解决方法

    本文介绍nginx出现504 Gateway Time-out问题的原因,分析问题并提供解决方法. 1.问题分析nginx访问出现504 Gateway Time-out,一般是由于程序执行时间过长导 ...

  3. idea怎么创建properties文件

    我们在idea当中新建一个properties时,就要新建一个ResourceBundle类型的文件 

  4. GDAL——命令使用专题——gdalinfo命令

    GDAL——命令使用专题——gdalinfo命令  前言 GDAL(Geospatial Data Abstraction Library)是一个在X/MIT许可协议下的开源栅格空间数据转换库.它利用 ...

  5. 记一次用express手写博客

    1.req.session时一直是undefined 解决方法: // sesssion应用的配置 app.use(session({ secret:'blog', cookie: ('name', ...

  6. C#Mvc4.0IIS部署(内网)

    安装IIS(百度中搜索教程安装) 在Vs中将项目发布到文件夹 回到桌面,右键计算机=>管理=>服务和应用程序=>Internet信息服务(IIS)管理器 右键添加新网站,输入网站名称 ...

  7. Django 安装配置

    1-安装Python3.6.1 Python2.x 与3.x的版本在语法上稍有不同,区别在于输出语句的不同,这个可以看相关的文档. Python3.6.1,可以在Python的官网上下载:https: ...

  8. 搭建本地yum源

    本地yum源其实非常容易搭建 首先进入/etc/yum.repos.d/ 将原来的yum源备份后移除,然后新建dvd.repo: 内容如下: [base] name=base baseurl=file ...

  9. 【教程】CRX格式插件不能离线安装?本地扩展CRX无法安装怎么办?

    http://www.cnplugins.com/zhuanti/how-to-make-crx-install.html

  10. MySql主从搭建详细步骤

    环境: linux64位,一台机器两个实例,主库3306端口,从库3307端口 步骤: 一.下载安装 先下载安装mysql,这里使用了5.7.21版本,具体过程不做详细说明,可自行查资料如何下载 二. ...