Python:paramiko SCPException连接超时错误

时间:2017-09-28 10:08:19

标签: python ssh paramiko scp

从一台Windows服务器,我有一个连接到远程Linux主机的python脚本,并通过SSH / SCP传输一些数据。该脚本计划每天早上通过本地服务器的WindowsTaskScheduler执行。

我遇到的问题是,有时(并不总是奇怪的是,并且这种情况经常发生的最后几天)执行永远不会完成,因为我收到连接超时错误。从脚本日志中:

*Traceback (most recent call last):
  File "D:\App\Anaconda3\lib\site-packages\paramiko\channel.py", line 665, in recv out = self.in_buffer.read(nbytes, self.timeout)
  File "D:\App\Anaconda3\lib\site-packages\paramiko\buffered_pipe.py", line160, in read raise PipeTimeout() paramiko.buffered_pipe.PipeTimeout

During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "D:\App\Anaconda3\lib\site-packages\scp.py", line 314, in _recv_confirm
    msg = self.channel.recv(512)
  File "D:\App\Anaconda3\lib\site-packages\paramiko\channel.py", line 667, in recv
    raise socket.timeout()socket.timeout

During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "script.py", line 235, in <module>
    copy_file_to_remote(LOCAL_FOLDER, file_path, DESTINATION_FOLDER, ssh)
  File "script.py", line 184, in copy_file_to_remote
    scp.put(win_path, linux_path)
  File "D:\App\Anaconda3\lib\site-packages\scp.py", line 154, in put
    self._send_files(files)
  File "D:\App\Anaconda3\lib\site-packages\scp.py", line 255, in _send_files
    self._recv_confirm()
  File "D:\App\Anaconda3\lib\site-packages\scp.py", line 316, in _recv_confirm
        raise SCPException('Timout waiting for scp response')
    scp.SCPException: Timout waiting for scp response*

我的问题是,是否可以在脚本中使用的ssh / scp函数中最大化连接超时限制,或者一般来说如何使我的脚本重新建立连接,使用keepalive或类似的东西保持打开状态。

如果有方法可以知道连接的哪一侧存在问题,本地服务器或远程机器,那也不错。这可以帮助解决很多问题。任何想法/帮助非常感谢!

0 个答案:

没有答案