松哥的笔记
使用paramiko进行ssh访问或sftp操作
2024-10-11 lqy
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")
发表评论:
昵称

邮件地址 (选填)

个人主页 (选填)

内容