如何通过tail远程控制应用?遇阻及基于Paramiko的解决方法
解决方案:用Paramiko向远程应用发送命令(替代python-sshtail)
问题场景
- 需要通过
tail机制向远程应用发送命令,本地环境中tail功能正常,但远程控制时无法实现 - 尝试过Paramiko库,无法安装
python-sshtail,寻求替代方案
实现方法:通过Paramiko写入远程管道
最终通过Paramiko将命令内容写入远程机器的管道文件/root/pu/mypipe完成需求,代码示例如下:
import paramiko hostname = '192.168.1.2' port = 22 username = 'user' password = 'pass' ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ssh.connect(hostname, port, username, password) # 向远程管道写入命令内容 command = '"Connect:" > /root/pu/mypipe' stdin, stdout, stderr = ssh.exec_command(command) stdin.close() # 可选:使用完毕后关闭SSH连接 ssh.close()
原理说明
远程应用应该是通过类似tail -f /root/pu/mypipe的方式持续监听该管道文件的内容。当通过Paramiko执行写入命令后,管道的内容会被更新,远程应用就能接收到"Connect:"指令,从而实现远程命令发送的效果。
内容的提问来源于stack exchange,提问作者Andy_bat
相关产品推荐
相关产品推荐

