使用paramiko进行ssh访问或sftp操作

2024-10-11 lqy python

import re
import paramiko

prompt=re.compile("(\[.*\]$)|(<.*>$)")
def do_sftp(action="get",filename=None,host=None,port=None,user=None,password=None):
    a=paramiko.client.SSHClient()
    a.set_missing_host_key_policy(paramiko.client.AutoAddPolicy)
    a.connect(
        hostname=host,
        port=port,
        username=user,
        password=password
    )
    b=a.open_sftp()
    if action=="get":
        b.get(filename,filename)
    elif action=="put":
        b.put(filename, filename)
    else:
        print("请输入正确的操作符get或者put")
    b.close()
    a.close()
def do_ssh(host=None,port=None,user=None,password=None,cmds=None):
    a=paramiko.client.SSHClient()
    a.set_missing_host_key_policy(paramiko.client.AutoAddPolicy)
    a.connect(
        hostname=host,
        port=port,
        username=user,
        password=password
    )
    b=a.invoke_shell()
    c=""
    for cmd in cmds:
        b.send(cmd+"\n")
        while 1:
            d = b.recv(65535).decode("utf-8")
            c = c + d
            if prompt.search(d):
#            if (">" in d) or ("]" in d):
                break
    b.close()
    a.close()
    print(c)
do_ssh("10.98.249.12","22","huawei","Admin@123",["scr 0 temp","dis ip inter brief","dis inter brief"])
#do_sftp("get1","device.sys","10.98.249.12",22,"huawei","Admin@123")

标签: python

发表评论:

Powered by emlog