python paramiko模块

示例

import paramiko

ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())  # 自动添加主机名及主机密钥到本地 HostKeys 对象,默认是拒绝未知的 ssh 服务器连接
ssh.connect('node', username='your_username', password='your_password')  # 连接到远程服务器

# 执行你的命令
stdin, stdout, stderr = ssh.exec_command('cd /home/mazu/run_path; nohup ./nio_4d_dynamic_pub_app > /dev/null 2>&1 &')

# 关闭连接
ssh.close()

已知问题,paramiko执行不会执行环境变量,并且尚未解决的是,执行环境变量,再执行paramiko的命令还是会报错,变更方法
示例

import subprocess

command = 'ssh node "cd /home/mazu/run_path; nohup ./pub_app &" > /dev/null'
process = subprocess.Popen(command, shell=True)

示例二

import paramiko, time, os
class Remote:
    # 初始化ip地址和端口,远程链接
    def __init__(self):
        self.ssh = paramiko.SSHClient()
        self.ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
        self.ssh.connect(hostname='ip', port=22, username='hostname', password='passwd', timeout=10)

    def cmd(self):
        try:
            stdin, stdout, stderr = self.ssh.exec_command('ls')
            print(stdout, stderr)
        except:
            if self.reconnected():
                stdin, stdout, stderr = self.ssh.exec_command('ls')
            else:
                os.exit(-1)

    def is_connected(self):
        transport = self.ssh.get_transport()
        if transport is not None and transport.is_active():
            return True
        return False

    def reconnected(self):
        for i in range(0, 180):
            if not self.is_connected():
                try:
                    self.ssh.connect(hostname='ip', port=22, username='hostname', password='passwd', timeout=10)
                    return True
                except:
                    print('尝试一次失败链接')
                time.sleep(1)
        return False

remote = Remote()
while True:
    remote.cmd()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值