远程执行命令:paramiko

paramiko模块用于通过 ssh 登录到远程客户端主机并执行命令,常见用法如下:

[[email protected] ~]$ yum install -y python-paramiko

通过用户名密码登录远程客户端主机并执行命令:

#!/usr/bin/env python
#-*- coding:utf-8 -*-

import paramiko

ssh = paramiko.SSHClient()                                                          # 创建一个ssh客户端对象
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())                           # 设置以什么方式连接远程客户端,这里配置自动协商
ssh.connect(hostname=‘192.168.216.130‘, port=22, username=‘root‘, password=‘root‘)  # 通过账号密码连接远程客户端
stdin, stdout, stderr = ssh.exec_command(‘date‘)                                    # 远程执行命令,结果会返回标准输入、标准输出、标准错误输出
print stdout.read()                                                                 # 查看执行结果ssh.close()                                                                         # 关闭连接
[[email protected] ~]$ python 1.py
2019年 01月 29日 星期二 06:38:38 CST

通过密钥登录远程客户端主机并执行命令:

#!/usr/bin/env python
#-*- coding:utf-8 -*-

import paramiko

ssh = paramiko.SSHClient()                                          # Create a new SSHClient
key = paramiko.RSAKey.from_private_key_file(‘/root/.ssh/id_rsa‘)    # Create a key object by reading a private key file
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())           # Set the policy to use when connecting to a server
ssh.connect(hostname=‘192.168.216.130‘, username=‘root‘, pkey=key)  # Connect to an SSH server and authenticate to it
stdin, stdout, stderr = ssh.exec_command(‘date‘)                    # Execute a command on the SSH server
print stdout.read()
ssh.close() 
[[email protected] ~]$ python 1.py
2017年 06月 02日 星期五 23:26:08 CST

通过密钥登录远程客户端主机并上传下载文件:

#!/usr/bin/env python
#-*- coding:utf-8 -*-

import paramiko

t = paramiko.Transport((‘192.168.216.130‘, 22))    # Create a Transport object
key = paramiko.RSAKey.from_private_key_file(‘/root/.ssh/id_rsa‘)
t.connect(username=‘root‘, pkey=key)
sftp = paramiko.SFTPClient.from_transport(t)    # Create an SFTP client channel from an open Transport
sftp.get(‘/etc/passwd‘, ‘/tmp/passwd‘)          # 下载文件,把远程客户端的/etc/passwd下载到本地/tmp/passwd
sftp.put(‘/etc/passwd‘, ‘/tmp/passwd‘)          # 上传文件,把本地/etc/passwd上传到远程客户端的/tmp/passwd
t.close() 

原文地址:https://www.cnblogs.com/pzk7788/p/10356937.html

时间: 2024-10-29 21:55:17

远程执行命令:paramiko的相关文章

python模块paramiko的上传下载和远程执行命令

#!/usr/bin/python # -*- coding: utf-8 -*- import paramiko,os,datetime server_ip = '192.168.1.123' server_user = 'root' server_passwd = '10241010' server_port = 22 #local_dir='C:\Python27' #remote_dir='/soft2/nba/' def ssh_connect(): ssh = paramiko.SS

使用paramiko远程执行命令、下发文件

写部署脚本时,难免涉及到一些远程执行命令或者传输文件. 之前一直使用 "sh" 库,调用sh.ssh远程执行一些命令,sh.scp传输文件,但是实际使用中还是比较麻烦的,光是模拟用户登陆这一点,还需要单独定义方法模拟输入. 感受一下: 来自 "官方文档" 后来发现 "paramiko" 库更加优雅. http://pic.cnhubei.com/space.php?uid=4593&do=album&id=1083522http:

python之实现批量远程执行命令(堡垒机)

python远程批量执行 我并不是一个专业的开发,我一直在学习linux运维,对于python也是接触不久,所以代码写的并不是很规范简洁. 前段时间一个同学找我一起做一个自动化运维平台,我对python的django还没有了解,并且对于HTML和JS这类开发学习还没有涉及,所以我说我做些后台的实现,前端就交给我的同学做.不扯淡了,下面说下我做批量执行的思路. 用到的模块:paramiko 功能:很简单就是批量执行命令,类似于ansible,本来想用Fabric,但是想一想还是用paramiko,

python 实现ssh远程执行命令 上传下载文件

使用密码远程执行命令 [[email protected] script]# cat daramiko_ssh.py  #!/usr/bin/env python #_*_coding:utf-8 _*_ __author__ = 'gaogd' import paramiko import sys,os host = sys.argv[1] user = 'root' password = 'ddfasdsasda2015' cmd = sys.argv[2] s = paramiko.SSH

20.27分发系统介绍;20.28expect脚本远程登录;20.29expect脚本远程执行命令;20.30expect脚本传递参数

20.27 分发系统介绍 shell项目-分发系统-expect 20.28 expect脚本远程登录 1. 安装expect [[email protected] ~]# yum install -y expect 自动远程登录 2. 创建配置1.expect脚本(远程登录) [[email protected] ~]# vim 1.expect 添加内容(自动远程登录hao2机器并执行命令) #! /usr/bin/expect set host "192.168.211.129"

Zabbix远程执行命令

原文发表于cu:2016-06-14 Zabbix触发器(trigger)达到阀值后会有动作(action)执行:发送告警信息或执行远程命令. 本文主要配置验证zabbix执行远程命令. 一.环境 Server:基于CentOS-7-x86_64-1511: Zabbix:zabbix-3.0.1server/agent. 二.注意事项 一些能想到的比较重要的注意事项: 远程执行命令是server端向agent端执行,不支持主动模式的agent: 不支持代理模式: zabbix用户必须对命令具有

使用ansible远程执行命令

使用ansible远程执行命令 1.ansible简介 ansible的官方定义:"Ansible is Simple IT Automation"--简单的自动化IT工具.这个工具的目标: 自动化部署APP 自动化管理配置项 自动化的持续交付 自动化的(AWS)云服务管理. 其本质上就是在远程在多台服务器执行一系列命令和文件同步,和以前的介绍的使用并行ssh提高工作效率功能类似,他们都是使用ssh协议进行远程操作,但ansible比pssh功能更强大,比如支持主机列表分组.支持pla

ssh远程执行命令使用明文密码

经过不懈的搜索终于找到ssh远程执行命令使用明文密码使用sshpass. 例子: sshpass -p "sequoiadb" ssh [email protected] "ls /" sshpass在centos无法直接安装 cd /etc/yum.repos.d/ wget http://download.opensuse.org/repositories/home:Strahlex/CentOS_CentOS-6/home:Strahlex.repo yum

Linux下使用SSH非交互式远程执行命令脚本---ssh无密码登陆

通过SSH命令远程执行命令首先需要建立相关主机间的信任关系.否则,在执行命令前SSH命令会提示你输入远程主机的密码.建立主机间信任关系的方法如下-即ssh无密码输入: 假设我们有两台主机.主机名分别为linuxa和linuxb.首先在linuxa上以当前用户运行如下命令生成本主机的公钥和私钥文件: ssh-keygen -t rsa     上述命令执行后,隐藏目录~/.ssh下会出现两个文件:id_rsa和id_rsa.pub.其中,id_rsa.pub为公钥文件. 将该文件的内容追加到对端主