检查paramiko SCP连接是否仍处于活动状态

时间:2019-11-02 16:53:59

标签: python raspberry-pi paramiko scp

我正在为RaspberryPi编写一个Python3间隔脚本,该脚本应该每小时拍摄一次,然后使用SCP将其上传到我的服务器。

到目前为止,我让Pi每小时进行一次快照,并且一切似乎正常。但是,当我建立SCP连接时出现错误

  

upload_photo中的文件“ /home/pi/timelapse.py”,第62行       scp.close()   UnboundLocalError:分配前已引用本地变量“ scp”

这对我来说毫无意义,因为仅在尝试将SCP变量初始化之前的行中,才在try块内调用scp.close()函数。换句话说,如果在该行之前发生异常,那么我应该已经进入了except-block,因此我不应该进入这一行。正如我所看到的,每当我来到这一行时都必须定义变量“ SCP”,但是我怀疑情况可能并非如此……

我用来上传照片的代码如下:

def upload_photo(filename):
    try:
            uploaded = False
            ssh = SSHClient()
            ssh.load_system_host_keys()
            ssh.connect('my.server', username="myUsername" password="myPass")

            scp = SCPClient(ssh.get_transport())

            scp.put(filename, remote_path="~/snaps")
            uploaded = True
            scp.close()
            ssh.close()
    except Exception as err:
            send_error_mail(err, filename)
    finally:
            if uploaded:
                    os.system("rm " + filename)
            else:
                    os.system("mv " + filename + " picturecache")

如果以前有人遇到此错误并知道如何解决,我将非常感谢您为我的问题提供答案!预先感谢。

0 个答案:

没有答案