• paramiko报错 Garbage packet received


    前情概要

    今天想要写一个多进程的python脚本上传代码至服务器,于是在本地用虚拟机测试了一下,可总是报错,具体报错信息如下

    Traceback (most recent call last):
      File "D:python3.6.7libmultiprocessingprocess.py", line 258, in _bootstrap
        self.run()
      File "D:python3.6.7libmultiprocessingprocess.py", line 93, in run
        self._target(*self._args, **self._kwargs)
      File "D:Documentseducation-serverfabfile.py", line 88, in upload
        sftp.put(local_path, target_path, confirm=True)
      File "D:python3.6.7libsite-packagesparamikosftp_client.py", line 759, in put
        return self.putfo(fl, remotepath, file_size, callback, confirm)
      File "D:python3.6.7libsite-packagesparamikosftp_client.py", line 717, in putfo
        reader=fl, writer=fr, file_size=file_size, callback=callback
      File "D:python3.6.7libsite-packagesparamikoutil.py", line 301, in __exit__
        self.close()
      File "D:python3.6.7libsite-packagesparamikosftp_file.py", line 82, in close
        self._close(async_=False)
      File "D:python3.6.7libsite-packagesparamikosftp_file.py", line 104, in _close
        self.sftp._request(CMD_CLOSE, self.handle)
      File "D:python3.6.7libsite-packagesparamikosftp_client.py", line 813, in _request
        return self._read_response(num)
      File "D:python3.6.7libsite-packagesparamikosftp_client.py", line 843, in _read_response
        t, data = self._read_packet()
      File "D:python3.6.7libsite-packagesparamikosftp.py", line 205, in _read_packet
        raise SFTPError("Garbage packet received")
    paramiko.sftp.SFTPError: Garbage packet received
    

    网上搜索了半天也没有找到答案,直到看到这个才想起来自己的虚拟机linux好像在~/.bashrc中设置了一个时间同步的后台进程,每次进入linux终端都会同步一次时间
    于是注释掉了这个配置,再次运行就OK了。

    can't pickle _thread.lock objects

    还遇到一个问题就是多进程的参数不能是自定义对象,否则就会有如下错误

    ... ... ...
    TypeError: can't pickle _thread.lock objects
    

    这个问题的原因是因为我在多进程运行函数中传递了自定义对象参数导致的,只需把自定义对象写入函数中即可
    修改前

    p1 = Process(target=ssh_obj.upload, args=("192.168.129.10", "admin", "aa.jar", "/root/aa.jar"))
    

    修改后

    p1 = Process(target=upload, args=("192.168.129.10", "admin", "aa.jar", "/root/aa.jar"))    # 重写一个函数,将对象放入函数中
    
  • 相关阅读:
    图像裁剪功能,鼠标抬起移除事件,不只是想去掉鼠标抬起时的裁剪事件,重要的是jquery绑定的都是dom2级事件
    在 JavaScript 里 + 会把一些字符转化成数字
    ++[[]][+[]]+[+[]] == 10 //true
    node 接口
    windows下,node.js默认执行的根目录
    鸟速度不匀速的方法Math.sqrt(this.i++); 开根号
    rotate 里面的是弧度不是度,如果需要度则要转成度 Math.PI/180
    定义一个数,它可能为正 也可能为负 var num = Math.pow(-1,parseInt(Math.random() * 2) + 1);
    如何单独使用modelsim进行仿真
    Xilinx开发板信息
  • 原文地址:https://www.cnblogs.com/welisit/p/11446421.html
Copyright © 2020-2023  润新知