python处理SSH和Redis

python处理SSH和Redis

这种方式是否可以远程操作其他主机执行一些命令

import paramiko

# 创建SSH连接
transport = paramiko.Transport(('192.168.230.147',22))
transport.connect(username='root',password='YhMjQx521134')

# 创建SSH客户端连接对象
ssh = paramiko.SSHClient()
# ssh.get_transport = transport
ssh._transport = transport

# stdin 标准输入
# stdout 标准输出
# stderr 标准错误
stdin, stdout, stderr = ssh.exec_command('ls /opt')
print(stdout.read().decode())

基于python代码可以操作远程主机

此类应用可以完成远程应用部署,远程监控,文件传输,

但是不知道为什么,这样执行的命令中 如果包含 > 或者 | 这些符号都执行不成功,但是也没报错,这又是为什么?

# 创建sftp链接对象,用于远程传输文件
sftp = paramiko.SFTPClient.from_transport(transport)
sftp.put('./woniunote.jpg','/opt/woniunote.jpg')

Redis通信过程

1、协议核心数据规则

*1  # 下述的命令有两个字符串构成
$4  # 下一个字符串长度为4
auth  
$6  # 下一个字符串长度为6
12345

*3
$3
set
$4
name
$5
woniu

传输过去就是 set name woniu
不过我们在Python中拼接字符串的时候还要加上\r\n,这是tcp协议通信中标准的换行符
import socket

s = socket.socket()
s.connect(('192.168.230.147',6379))
s.send('*2\r\n$4\r\nauth\r\n$9\r\np-0p-0p-0\r\n'.encode())
print(s.recv(1024).decode())
time.sleep(1)
s.send('*3\r\n$3\r\nset\r\n$4\r\nname\r\n$5\r\nwoniuxy\r\n'.encode())
print(s.recv(1024).decode())
time.sleep(1)
s.send('*2\r\n$3\r\nget\r\n$4\r\nname\r\n'.encode())
print(s.recv(1024).decode())
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值