paramiko報錯 Garbage packet received


前情概要

今天想要寫一個多進程的python腳本上傳代碼至服務器,於是在本地用虛擬機測試了一下,可總是報錯,具體報錯信息如下

Traceback (most recent call last):
  File "D:\python3.6.7\lib\multiprocessing\process.py", line 258, in _bootstrap
    self.run()
  File "D:\python3.6.7\lib\multiprocessing\process.py", line 93, in run
    self._target(*self._args, **self._kwargs)
  File "D:\Documents\education-server\fabfile.py", line 88, in upload
    sftp.put(local_path, target_path, confirm=True)
  File "D:\python3.6.7\lib\site-packages\paramiko\sftp_client.py", line 759, in put
    return self.putfo(fl, remotepath, file_size, callback, confirm)
  File "D:\python3.6.7\lib\site-packages\paramiko\sftp_client.py", line 717, in putfo
    reader=fl, writer=fr, file_size=file_size, callback=callback
  File "D:\python3.6.7\lib\site-packages\paramiko\util.py", line 301, in __exit__
    self.close()
  File "D:\python3.6.7\lib\site-packages\paramiko\sftp_file.py", line 82, in close
    self._close(async_=False)
  File "D:\python3.6.7\lib\site-packages\paramiko\sftp_file.py", line 104, in _close
    self.sftp._request(CMD_CLOSE, self.handle)
  File "D:\python3.6.7\lib\site-packages\paramiko\sftp_client.py", line 813, in _request
    return self._read_response(num)
  File "D:\python3.6.7\lib\site-packages\paramiko\sftp_client.py", line 843, in _read_response
    t, data = self._read_packet()
  File "D:\python3.6.7\lib\site-packages\paramiko\sftp.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"))    # 重寫一個函數,將對象放入函數中


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM