python 调用scp命令 实践

举报
风吹稻花香 发表于 2022/07/10 23:27:52 2022/07/10
【摘要】 pip install scp pip install pexpect 测试代码: import osimport stat import paramiko # 用于调用scp命令 def scp_demo(): from scp import SCPClient # 将指定目录的图片文件上传到服务器指定目录 ...

pip install scp

pip install pexpect

测试代码:


  
  1. import os
  2. import stat
  3. import paramiko # 用于调用scp命令
  4. def scp_demo():
  5. from scp import SCPClient
  6. # 将指定目录的图片文件上传到服务器指定目录
  7. # remote_path远程服务器目录
  8. # file_path本地文件夹路径
  9. # img_name是file_path本地文件夹路径下面的文件名称
  10. def upload_img(img_name, remote_path="/var/www/html/public/thinkfont/competitor/data/font/oppo/preview_pic", file_path="D:\PythonProject\img"):
  11. # img_name示例:07670ff76fc14ab496b0dd411a33ac95-6.webp
  12. host = "***.***.***.***" # 服务器ip地址
  13. port = 22 # 端口号
  14. username = "duanyuanjin" # ssh 用户名
  15. password = "duanVlife" # 密码
  16. ssh_client = paramiko.SSHClient()
  17. ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy)
  18. ssh_client.connect(host, port, username, password)
  19. scpclient = SCPClient(ssh_client.get_transport(), socket_timeout=15.0)
  20. local_path = file_path + "\\" + img_name
  21. try:
  22. scpclient.put(local_path, remote_path)
  23. except FileNotFoundError as e:
  24. print(e)
  25. print("系统找不到指定文件" + local_path)
  26. else:
  27. print("文件上传成功")
  28. ssh_client.close()
  29. def pex():
  30. import pexpect
  31. localpath=''
  32. sqldb = localpath +database #获取database名字
  33. if os.path.exists(sqldb):
  34. os.chmod(sqldb ,stat.S_IRWXU) #如果database存在,直接改为可读写格式
  35. else: #
  36. #/如果不存在,则远程登录服务器去提取
  37. child = pexpect.spawn("scp severA@localpath:/path/ " +database +" " +localpath) #/ /拷贝到本地目录
  38. child.expect("serverA@ip's password:")
  39. child.sendline("password")
  40. child.interact()
  41. os.chmod(sqldb ,stat.S_IRWXU) #把复制到本地的database改为可读写格式
  42. if __name__ == '__main__':
  43. scp_demo()

文章来源: blog.csdn.net,作者:AI视觉网奇,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/jacke121/article/details/125713196

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。