python 建立SSH连接发送指令

import paramiko
import select

def link_server_client2(serverip, user, pwd):
# 进行连接
print(‘------------开始连接服务器(%s)-----------‘ % serverip)
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
print(‘------------开始认证......-----------‘)
client.connect(serverip, 22, username=user, password=pwd, timeout=4)
print(‘------------认证成功!.....-----------‘)
# 开启channel 管道
transport = client.get_transport()
channel = transport.open_session()
channel.get_pty()
# 执行命令nohup.log.2017-12-30
tail = ‘tail -f /app/logs/system.log‘
#将命令传入管道中
channel.exec_command(tail)
while True:
if channel.exit_status_ready():
break
try:
rl, wl, el = select.select([channel], [], [])
if len(rl) > 0:
recv = channel.recv(1024)
print(recv.decode(‘utf-8‘, ‘ignore‘))

text_save(recv.decode(‘utf-8‘, ‘ignore‘), ‘tail(‘ + serverip + ‘).txt‘)
#键盘终端异常
except KeyboardInterrupt:
print("Caught control-C")
channel.send("\x03") # 发送 ctrl+c
channel.close()
client.close()

# 文件存储
def text_save(content, filename, mode=‘a‘):

file = open(filename, mode)

for i in content:

file.write(i.encode("utf-8"))
file.close()

原文地址:https://www.cnblogs.com/dmtz/p/10898397.html

时间: 2024-08-09 05:52:12

python 建立SSH连接发送指令的相关文章

【linux】——FreeBSD 建立 SSH 连接慢的解决方法

一般在编写 linux 程序的时候,会使用 SecureCRT 或者 xshell 等工具远程登录到 linux 服务器上.最近发现在建立 SSH 连接的时候,非常慢,但是建立连接成功之后可以正常使用.这个原因其实是 DNS 的问题.公司提供了两个 DNS 服务器,一个是新的,一个是老的现在作为备用.发现把 DNS 服务器改为新的之后,就不会出现这个情况.解决方案如下: vim /etc/resolv.conf 然后添加信息:  nameserver DNS地址 最后执行命令: /etc/net

C#通过SharpSSH库与Linux服务器建立SSH连接并执行命令

在Unity3D项目开发工具时需要用到SSH连接远程Linux服务器执行命令,找到SharpSSH链接库后,通过此方法就可使用.   /// <summary>     /// SSH登录远程Linux服务器,并运行指令     /// </summary>     /// <param name="host">远程Linux服务器IP或域名</param>     /// <param name="username&qu

SSH连接自动断开的解决方法(deb/rpm)

######### 修改后的: ## # tail -f -n 20 sshd_config#MaxStartups 10:30:60#Banner /etc/issue.net # Allow client to pass locale environment variablesAcceptEnv LANG LC_* Subsystem sftp /usr/lib/openssh/sftp-server # Set this to 'yes' to enable PAM authenticat

外网PC(win7系统)通过SSH连接其它局域网PC(Linux系统)的方法探索

为方便叙述,将外网PC(win7系统)简称为主机W,将PC(Linux系统)简称为主机L. 两个主机的基本网络环境描述如下. a. 主机L是家庭PC,通过路由器接入到网络运营商的网关,进而连接互联网.路由器无固定外网IP,路由器外网IP变化时,需在主机W处更改远程连接目标的IP地址. b. 主机W连接在公司局域网,可通过公司网关连接到互联网. 以下为实现过程的描述. 1. 配置主机L (1)通过浏览器访问路由器网络设置管理页面.笔者使用的路由器型号为iPtime N604A,在浏览器地址栏输入1

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

Python 进行 SSH 操作,实现本地与服务器的链接,进行文件的上传和下载 2018年5月26日 19:03 阅读 375 评论 7 我本地和服务器的连接一直使用的是 Xshell 5,而在与服务器进行文件操作的时候使用的是 Xshell 推荐安装的一个工具 Xftp 5,然而,昨天自己想着从服务器下载备份好的的数据库文件到本地的时候发现这个文件传输工具居然过期不能用了,好气啊!于是没办法(机智如我)只好用 Python 来实现 SSH 的连接,顺便从服务器批量下载一些文件,实现自动化. 项

【PYTHON模块】paramiko模块与主机SSH连接

还记得前一节做的socket和socketserver吗?写了很多实现了一个小功能,但是今天的paramiko真让人有种土枪换炮的感觉! paramiko是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接.paramiko支持Linux, Solaris, BSD, MacOS X, Windows等平台通过SSH从一个平台连接到另外一个平台.利用该模块,可以方便的进行ssh连接和sftp协议进行sftp文件传输. 本文只演示paramiko连接li

linux建立单向信任关系(让ssh连接不用输入密码)

传统手工建立单向信任关系 说明:当我们使用ssh命令时,会发现每次都得输入密码,本次实验可以实现ssh连接时不用输入密码. 一.在server1(192.168.199.128)上 1.首先新建用户 #useradd liu 2.切换用户 #su - liu 3.生成密钥 #ssh-keygen(都敲回车) 4.建立公钥文件 #cd  .ssh/ #cat id_rsa.pub >authorized_keys #chmod 600 authorized_keys 二.在server2(192.

python 批量执行脚本(服务端和客户端建立TCP连接)

有很多开源的批量部署的工具可以使用,比如puppet, ansible , saltstack , chef . 但这些工具都有自己的一套语法规则,你得按照他的语法来编写程序,然后批量执行. 那有没有方法可以直接写bash 或者Python脚本,然后批量执行呢? 方法当然是有的,需要自己写程序来传输脚本,拷贝文件,再复杂点,可以自定义脚本式同步还是异步执行,自定义要执行的主机组,等等,需要根据自己的业务需要来想. 这里只是抛砖引玉,我采用建立socket(TCP)连接来批量执行脚本. 服务端脚本

Python通过SSH隧道链接Kafka

Python通过SSH隧道链接Kafka 最近有一个需求需要连接Kafka,但是它只允许内网链接,但是有些服务跑在服务器上总没有在我本机调试起来爽,毕竟很多开发工具还是在客户端机器上用的熟练.于是我想到了通过SSH连接Kafka,至于怎么连接可以通过XShell.Proxifier等等,由于个人还是觉得自己写更灵活,所以我是用Python里的sshtunnel写的(有需要后面我也可以分享下),个人喜好啊,你们自行选择. 由于笔者这里的Kafka环境使用Zookeeper做分布式部署,有多个bro