subprocess:

#!/usr/bin/python3
import paramiko
import os
import sys
import subprocess
curPath = os.path.abspath(os.path.dirname(__file__))
rootPath = os.path.split(curPath)[0]
sys.path.append(rootPath)
from src.logutils import logger
log=logger("root",rootstdout=True,handlerList=['I','E'])
class SshConnect(object): def __init__(self,ip,user,pwd,port):
self.port=port
self.pwd=pwd
self.user=user
self.ip=ip
try:
client=paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect(self.ip,self.port,self.user,self.pwd)
self.client=client
except ConnectionError as e:
log.error(e)
def exe_cmd(self,shell):
stdin, stdout, stderr = self.client.exec_command(shell)
res,err = stdout.read(),stderr.read()
result = res if res else err
return result
# print(result.decode("utf-8"))
def close_client(self):
self.client.close()
def run():
ip='192.168.81.129'
port=22
pwd='admin'
user='root'
client=SshConnect(ip,user,pwd,port)
res=client.exe_cmd('ps -ef|grep python&&ifconfig')
log.info(res) def run_sshpass():
shell=" ps -ef|grep java&&df -m"
sub=subprocess.Popen(shell,shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE)
sub.wait(timeout=20)
res=sub.stdout.readlines()
log.info(deal_res(res)) def deal_res(res):
std=''
for i in res: output=i.decode("utf-8") std +=output
return std if __name__ == '__main__':
run_sshpass()
#run()
[root@hostuser src]#

  

[root@hostuser src]# python3 sshutils.py
[INFO]2019-05-14 00:31:27 Tue --root-- sshutils.py:
root 28680 28677 0 00:31 pts/0 00:00:00 /bin/sh -c ps -ef|grep java&&df -m
root 28683 28680 0 00:31 pts/0 00:00:00 grep java
Filesystem 1M-blocks Used Available Use% Mounted on
/dev/mapper/centos-root 27627 8616 19012 32% /
devtmpfs 894 0 894 0% /dev
tmpfs 910 1 910 1% /dev/shm
tmpfs 910 10 901 2% /run
tmpfs 910 0 910 0% /sys/fs/cgroup
/dev/sda1 1014 232 783 23% /boot

  paramiko:

#!/usr/bin/python3
import paramiko
import os
import sys
import subprocess
curPath = os.path.abspath(os.path.dirname(__file__))
rootPath = os.path.split(curPath)[0]
sys.path.append(rootPath)
from src.logutils import logger
log=logger("root",rootstdout=True,handlerList=['I','E'])
class SshConnect(object): def __init__(self,ip,user,pwd,port):
self.port=port
self.pwd=pwd
self.user=user
self.ip=ip
try:
client=paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect(self.ip,self.port,self.user,self.pwd)
self.client=client
except ConnectionError as e:
log.error(e)
def exe_cmd(self,shell):
stdin, stdout, stderr = self.client.exec_command(shell)
res,err = stdout.read(),stderr.read()
result = res if res else err
return result
# print(result.decode("utf-8"))
def close_client(self):
self.client.close()
def run():
ip='192.168.81.129'
port=22
pwd='admin'
user='root'
client=SshConnect(ip,user,pwd,port)
res=client.exe_cmd('ps -ef|grep python&&ifconfig')
log.info(res) def run_sshpass():
shell=" ps -ef|grep java&&df -m"
sub=subprocess.Popen(shell,shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE)
sub.wait(timeout=20)
res=sub.stdout.readlines()
log.info(deal_res(res)) def deal_res(res):
res1= res.decode("utf-8") return res1 if __name__ == '__main__':
#run_sshpass()
run()
[root@hostuser src]# vi sshutils.py
[root@hostuser src]# python3 sshutils.py
[INFO]2019-05-14 00:28:19 Tue --paramiko.transport-- transport.py:
Connected (version 2.0, client OpenSSH_7.4)
/usr/local/lib/python3.7/site-packages/paramiko/kex_ecdh_nist.py:39: CryptographyDeprecationWarning: encode_point has been deprecated on EllipticCurvePublicNumbers and will be removed in a future version. Please use EllipticCurvePublicKey.public_bytes to obtain both compressed and uncompressed point encoding.
m.add_string(self.Q_C.public_numbers().encode_point())
/usr/local/lib/python3.7/site-packages/paramiko/kex_ecdh_nist.py:96: CryptographyDeprecationWarning: Support for unsafe construction of public numbers from encoded data will be removed in a future version. Please use EllipticCurvePublicKey.from_encoded_point
self.curve, Q_S_bytes
/usr/local/lib/python3.7/site-packages/paramiko/kex_ecdh_nist.py:111: CryptographyDeprecationWarning: encode_point has been deprecated on EllipticCurvePublicNumbers and will be removed in a future version. Please use EllipticCurvePublicKey.public_bytes to obtain both compressed and uncompressed point encoding.
hm.add_string(self.Q_C.public_numbers().encode_point())
[INFO]2019-05-14 00:28:19 Tue --paramiko.transport-- transport.py:
Authentication (publickey) failed.
[INFO]2019-05-14 00:28:19 Tue --paramiko.transport-- transport.py:
Authentication (password) successful!
[INFO]2019-05-14 00:28:45 Tue --root-- sshutils.py:
b'root 28245 16287 2 00:28 pts/0 00:00:00 python3 sshutils.py\nroot 28310 28248 0 00:28 ? 00:00:00 bash -c ps -ef|grep python&&ifconfig\nroot 28326 28310 0 00:28 ? 00:00:00 grep python\nens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500\n inet 192.168.81.129 netmask 255.255.255.0 broadcast 192.168.81.255\n inet6 fe80::f08c:a9:42b2:6ec4 prefixlen 64 scopeid 0x20<link>\n ether 00:0c:29:11:d6:35 txqueuelen 1000 (Ethernet)\n RX packets 7533 bytes 640098 (625.0 KiB)\n RX errors 0 dropped 0 overruns 0 frame 0\n TX packets 6119 bytes 755348 (737.6 KiB)\n TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0\n\nlo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536\n inet 127.0.0.1 netmask 255.0.0.0\n inet6 ::1 prefixlen 128 scopeid 0x10<host>\n loop txqueuelen 1000 (Local Loopback)\n RX packets 52950 bytes 43181732 (41.1 MiB)\n RX errors 0 dropped 0 overruns 0 frame 0\n TX packets 52950 bytes 43181732 (41.1 MiB)\n TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0\n\n'

  

ssh paramiko && subprocess的更多相关文章

  1. day 28 黏包 ssh模块 subprocess模块

    套接字的信仰 一切皆文件 昨日作业: import socket sock=socket.socket() # TCP协议 IP_PORT=("127.0.0.1",8899) s ...

  2. Python time、datetime、os、random、sys、hashlib、json、shutil、logging、paramiko、subprocess、ConfigParser、xml、shelve模块的使用

    文章目录: 1. time & datetime模块 2. os模块 3. random模块 4. sys模块 5. hashlib模块 6. json模块 7. shutil模块 8. lo ...

  3. python paramiko模块SSH自动登录linux系统进行操作

    1). Linux系统首先要开启SSH服务:service ssh status 如果没安装的话,则要:apt-get install openssh-server service ssh resta ...

  4. paramiko SSH 模块简单应用。

    目的:需要ssh链接到Linux主机,执行telnet 命令,抓回显匹配制定内容. ssh --->执行telnet到本地端口--->执行类似 ls 的命令.匹配命令执行后的特定回显字段. ...

  5. Python 模块功能paramiko SSH 远程执行及远程下载

    模块 paramiko paramiko是一个用于做远程控制的模块,使用该模块可以对远程服务器进行命令或文件操作,值得一说的是,fabric和ansible内部的远程管理就是使用的paramiko来现 ...

  6. python 使用paramiko模块上传本地文件到ssh

    我们要了解几个函数: paramiko.Tranport(("目标ip,端口"))#这是上传目标的IP和端口 paramiko.SFTPClient.from_tranport() ...

  7. 【Python】 SSH连接的paramiko

    paramiko *paramiko需要PyCrypto模块的支持 paramiko支持通过SSH协议进行一些操作,比如远程执行命令,上下传文件等等 用法: ① 远程命令 ssh = paramiko ...

  8. Python3学习之路~9.1 paramiko模块:实现ssh执行命令以及传输文件

    我们一般使用linux的时候,都是在Windows上安装一个ssh客户端连接上去.那么从一台linux如何连接到另一条linux呢?使用ssh命令即可,因为每台linux机器自己都有一个ssh客户端. ...

  9. paramiko之ssh登录,执行cmd,下载文件

    一.paramiko远程登录及执行命令 1.1:exec_command(cmd)远程执行命令 client = paramiko.SSHClient() client.set_missing_hos ...

随机推荐

  1. 高斯消元-bzoj1013-球形空间产生器

    This article is made by Jason-Cow.Welcome to reprint.But please post the writer's address. http://ww ...

  2. 吴裕雄 python 机器学习——集成学习梯度提升决策树GradientBoostingRegressor回归模型

    import numpy as np import matplotlib.pyplot as plt from sklearn import datasets,ensemble from sklear ...

  3. 其他 - 阻塞 & 同步 的基本认识

    1. 概述 有些概念, 老是弄不清楚 同步异步 阻塞非阻塞 2. 准备 场景 角色 client 发起请求 接受请求 server 接受请求 执行操作 返回响应 行为 大致是一个 C/S 模式的模型 ...

  4. Go项目结构

    1. go项目工程结构 配置好工作目录后,就可以编码开发了,在这之前,我们看下go的通用项目结构,这里的结构主要是源代码相应地资源文件存放目录结构. 1.1 gopath目录 gopath目录就是我们 ...

  5. maven版cxf集合jetty开发服务端(一)

    一.首先新建一个maven项目 二.pom.xml引入依赖 <dependency> <groupId>org.apache.cxf</groupId> <a ...

  6. JavaMail实现带附件的收发邮件

    一.前言 参考博客: http://blog.csdn.net/xietansheng/article/details/51722660 http://www.cnblogs.com/HigginCu ...

  7. 01hive基础操作

    一. Hive基础概念 我自己本人一开始学习Hive的时候,最大的疑问就是hive和hbase到底有什么区别?(因为自己本身学校课程设置问题有了解到一丢丢hbase的知识) 所以先甩一篇博客提供给跟我 ...

  8. Laravel 图片无法显示的问题

    无法显示图片 先跳转到指定目录 mklink /d storage d:\www\dev.hanwen.com\storage\app

  9. Java生鲜电商平台-生鲜电商高并发下的接口幂等性实现与代码讲解

    Java生鲜电商平台-生鲜电商高并发下的接口幂等性实现与代码讲解 说明:Java生鲜电商平台-生鲜电商高并发下的接口幂等性实现与代码讲解,实际系统中有很多操作,是不管做多少次,都应该产生一样的效果或返 ...

  10. 被女朋友三番五次拉黑后,我用 Python 写了个“舔狗”必备神器

    在一个阳光明媚的周日,我打开窗户呼吸了一口新鲜空气.阳光灿烂,岁月静好,又是一个约女朋友出去爬山吃饭看电影的好日子. 想到女朋友的大眼睛,我脸上不禁洋溢起了幸福的微笑.打开微信,给女朋友发出去一个美好 ...