python 调用scp命令 实践
        【摘要】 
                     
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
测试代码:
  
   - 
    
     
    
    
     
      import os
     
    
 
   - 
    
     
    
    
     
      import stat
     
    
 
   - 
    
     
    
    
      
     
    
 
   - 
    
     
    
    
     
      import paramiko  # 用于调用scp命令
     
    
 
   - 
    
     
    
    
      
     
    
 
   - 
    
     
    
    
     
      def scp_demo():
     
    
 
   - 
    
     
    
    
         from scp import SCPClient
     
    
 
   - 
    
     
    
    
      
     
    
 
   - 
    
     
    
    
         # 将指定目录的图片文件上传到服务器指定目录
     
    
 
   - 
    
     
    
    
         # remote_path远程服务器目录
     
    
 
   - 
    
     
    
    
         # file_path本地文件夹路径
     
    
 
   - 
    
     
    
    
         # img_name是file_path本地文件夹路径下面的文件名称
     
    
 
   - 
    
     
    
    
         def upload_img(img_name, remote_path="/var/www/html/public/thinkfont/competitor/data/font/oppo/preview_pic", file_path="D:\PythonProject\img"):
     
    
 
   - 
    
     
    
    
             # img_name示例:07670ff76fc14ab496b0dd411a33ac95-6.webp
     
    
 
   - 
    
     
    
    
     
              host = "***.***.***.***"  # 服务器ip地址
     
    
 
   - 
    
     
    
    
     
              port = 22  # 端口号
     
    
 
   - 
    
     
    
    
     
              username = "duanyuanjin"  # ssh 用户名
     
    
 
   - 
    
     
    
    
     
              password = "duanVlife"  # 密码
     
    
 
   - 
    
     
    
    
      
     
    
 
   - 
    
     
    
    
     
              ssh_client = paramiko.SSHClient()
     
    
 
   - 
    
     
    
    
     
              ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy)
     
    
 
   - 
    
     
    
    
     
              ssh_client.connect(host, port, username, password)
     
    
 
   - 
    
     
    
    
     
              scpclient = SCPClient(ssh_client.get_transport(), socket_timeout=15.0)
     
    
 
   - 
    
     
    
    
     
              local_path = file_path + "\\" + img_name
     
    
 
   - 
    
     
    
    
             try:
     
    
 
   - 
    
     
    
    
     
                  scpclient.put(local_path, remote_path)
     
    
 
   - 
    
     
    
    
             except FileNotFoundError as e:
     
    
 
   - 
    
     
    
    
                 print(e)
     
    
 
   - 
    
     
    
    
                 print("系统找不到指定文件" + local_path)
     
    
 
   - 
    
     
    
    
             else:
     
    
 
   - 
    
     
    
    
                 print("文件上传成功")
     
    
 
   - 
    
     
    
    
     
              ssh_client.close()
     
    
 
   - 
    
     
    
    
      
     
    
 
   - 
    
     
    
    
     
      def pex():
     
    
 
   - 
    
     
    
    
         import pexpect
     
    
 
   - 
    
     
    
    
     
          localpath=''
     
    
 
   - 
    
     
    
    
      
     
    
 
   - 
    
     
    
    
     
          sqldb = localpath +database                    #获取database名字
     
    
 
   - 
    
     
    
    
         if os.path.exists(sqldb):
     
    
 
   - 
    
     
    
    
     
              os.chmod(sqldb ,stat.S_IRWXU)              #如果database存在,直接改为可读写格式
     
    
 
   - 
    
     
    
    
         else:                                         #
     
    
 
   - 
    
     
    
    
             #/如果不存在,则远程登录服务器去提取
     
    
 
   - 
    
     
    
    
     
              child = pexpect.spawn("scp severA@localpath:/path/ " +database +" " +localpath)   #/ /拷贝到本地目录
     
    
 
   - 
    
     
    
    
     
              child.expect("serverA@ip's password:")
     
    
 
   - 
    
     
    
    
     
              child.sendline("password")
     
    
 
   - 
    
     
    
    
     
              child.interact()
     
    
 
   - 
    
     
    
    
     
          os.chmod(sqldb ,stat.S_IRWXU)  #把复制到本地的database改为可读写格式
     
    
 
   - 
    
     
    
    
      
     
    
 
   - 
    
     
    
    
     
      if __name__ == '__main__':
     
    
 
   - 
    
     
    
    
     
          scp_demo()
     
    
 
  
 
文章来源: blog.csdn.net,作者:AI视觉网奇,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/jacke121/article/details/125713196
        【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
            cloudbbs@huaweicloud.com
        
        
        
        
        
        
        - 点赞
 - 收藏
 - 关注作者
 
            
           
评论(0)