ssh操作服务器
# -*- 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操作服务器的更多相关文章
- 使用PSSH批量SSH操作Linux服务器
http://www.opstool.com/article/266 服务器多了,有一个烦恼就是如何批量快速操作一堆服务器.这里我推荐一下经常使用利器pssh.这个工具给我的工作带来了莫大的帮助. 简 ...
- Python 进行 SSH 操作,实现本地与服务器的链接,进行文件的上传和下载
Python 进行 SSH 操作,实现本地与服务器的链接,进行文件的上传和下载 2018年5月26日 19:03 阅读 375 评论 7 我本地和服务器的连接一直使用的是 Xshell 5,而在与服务 ...
- Linux基础知识第六讲,远程管理ssh操作
目录 Linux基础知识第六讲,远程管理ssh操作 一丶什么是SSH 1.什么是SSH 2.了解域名跟端口 二丶SSH命令以及远程连接linux进行维护 1.ssh命令格式 2.scp远程终端拷贝文件 ...
- 【转帖】远程显示(操作) 服务器 GUI 程序(图形化界面) (基于 X11 Forwarding + Centos + MobaXterm)
远程显示(操作) 服务器 GUI 程序(图形化界面) (基于 X11 Forwarding + Centos + MobaXterm) https://zhuanlan.zhihu.com/p/310 ...
- ssh连接服务器
1.命令行操作 第一步输入 :ssh 用户名@服务器外网ip 第二步:输入密码,回车 看到welcome提示信息即为登陆成功 输入:exit 退出 2.客户端操作 windows下载ssh软件,安装 ...
- 远程显示(操作) 服务器 GUI 程序(图形化界面) (基于 X11 Forwarding + Centos + MobaXterm)
在做 数据分析(数据挖掘 或 机器学习)的时候,我们经常需要绘制一些统计相关的图表,这些统计.绘图的程序常常是跑在服务器上的,可是服务器出于性能和效率的考虑,通常都是没有安装图形化界面的,于是这些统计 ...
- Mac上使用ssh连接服务器title显示服务器的ip
Mac上使用ssh连接服务器title显示服务器的ip 使用Mac开发时,管理的服务器过多时,会搞混乱.可能有时啪啪啪一顿操作,最后发现操作错了机器. 解决方案 在远程服务器上,编辑vim /etc/ ...
- paramiko模块(远程操作服务器)
paramiko模块(远程操作服务器) django+paramkio实现远程某些服务器执行命令+上传文件 用于帮助开发者通过代码远程连接服务器,并对服务器进行操作. pip3 install par ...
- Mac 无密码 SSH 登录服务器
Mac 无密码 SSH 登录服务器,只需要简单三步,不再需要记住账号密码,快速进入服务器 第一步,生成密钥对 在当前用户下创建.ssh目录 mkdir ~/.ssh 使用命令ssh-keygen生成密 ...
随机推荐
- Linux和windows 平台下启动和关闭mysql服务
Linux平台下启动和关闭mysql服务 一.linux下查看mysql服务的两种方式: 方式一: [root@localhost bin]ps -ef|grep mysql 方式二: [root@l ...
- css3 翻牌动画
最近做了一个特效,css是从网上找的,地址是这个: CSS3 animate flip下的纸牌翻转效果实例页面 把其中核心的css代码扒出来如下: /* The properties in this ...
- C#设计模式(0)-设计模式系列文章导航
设计模式系列文章导航 C#设计模式(1)——单例模式(SingletonPattern) C#设计模式(2)——简单工厂模式(SimpleFactory) C#设计模式(3)——工厂方法模式( ...
- 怎么在多场景下使用不同的 git 账号 commit
应用场景 我有多个github的账号,不同的账号对应不同的repo,需要push的时候自动区分账号 我有多个git的账号,有的是github的,有的是单位的gitlab的,不同账号对应不同的repo, ...
- XAMPP本地服务器打不开解决方案
第一步:先开启相关服务:如图 第二步:在浏览器上输入localhost:端口号,(或127.0.0.1:端口号),按回车,就成功登陆本地服务器. =========================== ...
- typescript 属性默认值使用箭头函数 this指向问题
今天注意到前端小伙伴用react 定义component class的方法的时候是通过箭头函数的方式,表示好奇. class Test extends React.Component { public ...
- Bouml快速使用指南
一.Bouml简介 Android 系统中有大量Java.C++代码,继承以及依赖关系非常复杂,Bouml可以用c++.Java.Idl.Php和Python建模及生成代码,反之也可通过uml工具更好 ...
- hadoop管理命令
-help 功能:输出这个命令参数手册 -ls 功能:显示目录信息 示例: hadoop fs -ls hdfs://hadoop-server01:9000/ 备注:这些参数中,所有的hdfs ...
- 消息队列kafka集群搭建
linux系统kafka集群搭建(3个节点192.168.204.128.192.168.204.129.192.168.204.130) 本篇文章kafka集群采用外部zookeeper,没采 ...
- Datatables一些常见的JS用法(多与表格有关)
**********************--倒--序--上--升--(方便新增.更新)*********************** (3)给 动态生成 的 行 内按钮,添加点击事件(多用于分页情 ...