python-paramiko对远程服务器终端的操作

1.with open写文件到本地

2.paramiko SFTPClient将文件推到salt服务端

3.paramiko SSHClient通过salt-cp将文件分发给目标服务器

1.
with open(filePath, ‘w‘) as f:      # filePath文件本地路径,w write模式
  f.write(content)
return filePath    
2.
import paramiko
# 1 连接客户端
transport = paramiko.Transport((ssh_url, ssh_port))
transport.connect(username=ssh_user, password=ssh_pwd)
# 2 定义与客户端交互    将刚刚定义的transport当参数传递给他
sftp = paramiko.SFTPClient.from_transport(transport)
# sftp.put(r‘/Users/mnt/{}‘.format(script_name), ‘/mnt/{}‘.format(script_name))
sftp.put(本地路径+ ‘{}‘.format(文件名), 目标路径+‘{}‘.format(文件名))
# 5 关闭连接
transport.close()
3.

# 实例化一个ssh
ssh = paramiko.SSHClient()
# 设置主机不在khost_key中也能连接
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 创建连接
ssh.connect(hostname=ssh_url, port=ssh_port, username=ssh_user, password=ssh_pwd)
# 执行命令,     salt-cp -L salt_minion_hostname local_url/filename target_url
stdin, stdout, stderror = ssh.exec_command(‘salt-cp -L localhost.localdomain /mnt/‘ + script_name + ‘ /mnt‘)
# 打印输出
print(stdout.read())
# 关闭连接
ssh.close()

4.通过paramiko模块控制远程服务器cmd终端,执行git命令

import paramiko
#
def parmiko_con():
    # 实例化一个ssh
    ssh = paramiko.SSHClient()
    # 设置主机不在khost_key中也能连接
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    # 创建连接
    ssh.connect(hostname=ssh_url, port=ssh_port, username=ssh_user, password=ssh_pwd)
    # 执行命令
    # cmd = ‘cd /mnt/test_pro/opsmanage/ && git shortlog -2‘    # 查看最近两次的提交版本,在cmd里执行没有问题,但在函数里运行响应不出来,git log命令需要按q退出
    # cmd = ‘cd /mnt/test_pro/opsmanage/ && git rev-list master‘   # master分支提交记录倒叙排列
    cmd = ‘cd /mnt/test_pro/opsmanage/ && git log --since=1.weeks‘  # 查看近一周的提交,多条数据只有一个列表,需要进行处理,需要请移步:https://www.cnblogs.com/lutt/p/12037454.html
    # cmd = ‘cd /mnt/test_pro/opsmanage/ && git rev-list --all -n 2‘   # 历史版本reverse只去两条记录(只显示commit id)
    # cmd = ‘cd /mnt/OpsManage/ && git branch -a‘    # 查看当前所有分支,  git branch 查看当前分支
    # cmd = ‘cd /mnt/test_pro/opsmanage/ && git tag -l‘  # 查看当前所有tag
    stdin, stdout, stderror = ssh.exec_command(cmd)
    # 打印输出
    list2 = []
    ret = stdout.read().decode(‘utf-8‘)
    list2 = ret.split(‘\n‘)
    print(list2)

    # 关闭连接
    ssh.close()

if __name__ == ‘__main__‘:
    parmiko_con()
    print(‘ok‘)

原文地址:https://www.cnblogs.com/lutt/p/12037586.html

时间: 2024-10-14 14:01:49

python-paramiko对远程服务器终端的操作的相关文章

python利用paramiko连接远程服务器执行命令

python中的paramiko模块是用来实现ssh连接到远程服务器上的库,在进行连接的时候,可以用来执行命令,也可以用来上传文件. 1.得到一个连接的对象 在进行连接的时候,可以使用如下的代码: def connect(host): 'this is use the paramiko connect the host,return conn' ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddP

python ssh 连接远程服务器,修改文本内容,调用脚本

今天小编get到一个用python的paramiko库创建ssh对象,连接到远程服务器,并且修改文件内容,调用脚本的好方法!! 主角当然是paramiko库啦,利用paramiko创建一个ssh对象,用于连接远程服务器 import paramiko ssh = paramiko.SSHClient()#创建SSH对象 设置允许连接不在know_hosts的主机,ssh会将 访问过计算机的公钥(public key)都记录在~/.ssh/known_hosts,当下次访问相同计算机时,OpenS

python paramiko模块远程执行多条命令

最近一直在用python的paramiko执行远程命令,发现如果直接写的话在每条命令后加分号执行时会报错,如果不加分号,分一条命令一条命令地执行,起不到作用,如切换路径等,后面在网上找到了相关的方法,只要在exec_command(cmd,get_pty=True)在命令语句后加get_pty=True即可.代码如下: def exec_command(self,cmd): client = paramiko.SSHClient() try: client.set_missing_host_ke

在Eclipse开发的项目 部署在远程服务器上的操作步骤及遇到的问题

环境:Eclipse + JDK 1.7 运行eclipse,点击windows--preferences--java--compiler--右边就可以看到当前使用的jdk版本号,如下图: 注意:这是全局的jdk版本号 特别注意:塔里木钻井平台项目 特别指定的jdk编译环境是1.7(Enable project specific settings) 远程桌面连接:输入用户名/密码 进入远程桌面机器上后,先查看是否有我们所需要的tomcat-7.0和jdk-1.7(没有的话要进行下载安装). 注意

python Paramiko模块远程推送文件

#!/usr/bin/python import paramiko def push_file(file):     f = open(file,'r')     running = 1     while running:         line = f.readline()         if line != '':             line = line.strip('\n')             list = line.split(' ')             ip 

运维开发:python websocket网页实时显示远程服务器日志信息

功能:用websocket技术,在运维工具的浏览器上实时显示远程服务器上的日志信息 一般我们在运维工具部署环境的时候,需要实时展现部署过程中的信息,或者在浏览器中实时显示程序日志给开发人员看.你还在用ajax每隔段时间去获取服务器日志?out了,试试用websocket方式吧 我用bottle框架,写了个websocket服务端,浏览器连接到websocket server,再用python subprocess获取远程服务器的日志信息,subprocess,就是用Popen调用shell的sh

使用paramiko如何连接服务器?

本文和大家分享的是python开发中使用paramiko连接服务器的方法和步骤,希望通过本文的,对大家学习和使用paramiko有所帮助. ssh连接步骤 1.ssh server建立server public key,对应文件/etc/ssh/ssh_host_*文件 首先是有一个ssh的服务器,它建立了一些公匙,然后放在本地的文件中. 2.ssh client发出连接请求 这个ssh的client它发出连接请求 3.ssh server发送server public key给ssh clie

python paramiko模块:远程连接服务器

1.  SFTP基于 用户名密码 登录服务器,实现上传下载: import paramiko transport = paramiko.Transport(('hostname', 22)) # 生成trasport,配置主机名,端口 transport.connect(username='root',password='****') # 登录名.密码 sftp = paramiko.SFTPClient.from_transport(transport) # 将id_rsa 上传至服务器并重命

paramiko 模块远程管理 liunx 服务器

paramiko是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接. 由于使用的是python这样的能够跨平台运行的语言,所以所有python支持的平台,如Linux, Solaris, BSD, MacOS X, Windows等,paramiko都可以支持,因此,如果需要使用SSH从一个平台连接到另外一个平台,进行一系列的操作时,paramiko是最佳工具之一. 一.远程连接服务器 方式1 import  paramiko #实例化客户端 ssh