Python SFTP:连接中断时获取通知
Python SFTP: Get Notification when Connection breaks
如果与服务器的连接由于某种原因中断,我收到一条文本或其他内容,是否有可能,所以我知道该错误与服务器有关?
import paramiko
import time
def connSFTP(ssh_key_filepath,host,user):
#Fehleroptionen 1. Pfad zum SSH-KeyError
#-SSH-Key vorhanden?
#2.Host und/oder Username ist falsch
k = paramiko.RSAKey.from_private_key_file(ssh_key_filepath) #SSH KEY
c = paramiko.SSHClient()
c.set_missing_host_key_policy(paramiko.AutoAddPolicy())
c.connect( hostname = host, username = user , pkey = k )
sftp = c.open_sftp()
return sftp
def main():
ssh_key_filepath = '/home/dtv/.ssh/id_rsa'
hostname = 'HostAdress'
username = 'user'
sftp = connSFTP(ssh_key_filepath,hostname,username)
print('Connected')
time.sleep(30)
#sftp.close()
if __name__ == '__main__':
main()
我内置了一个睡眠,所以我可以杀死连接的过程并模拟连接丢失的时间。
您应该对以下内容使用异常处理:
提出:
BadHostKeyException – 如果无法验证服务器的主机密钥
提出:
AuthenticationException – 如果身份验证失败
提出:
SSHException – 如果连接或建立 SSH 会话时出现任何其他错误
提出:
socket.error – 如果连接时发生套接字错误
Paramiko api 文档 link:http://docs.paramiko.org/en/1.15/api/client.html#paramiko.client.SSHClient.connect
如果与服务器的连接由于某种原因中断,我收到一条文本或其他内容,是否有可能,所以我知道该错误与服务器有关?
import paramiko
import time
def connSFTP(ssh_key_filepath,host,user):
#Fehleroptionen 1. Pfad zum SSH-KeyError
#-SSH-Key vorhanden?
#2.Host und/oder Username ist falsch
k = paramiko.RSAKey.from_private_key_file(ssh_key_filepath) #SSH KEY
c = paramiko.SSHClient()
c.set_missing_host_key_policy(paramiko.AutoAddPolicy())
c.connect( hostname = host, username = user , pkey = k )
sftp = c.open_sftp()
return sftp
def main():
ssh_key_filepath = '/home/dtv/.ssh/id_rsa'
hostname = 'HostAdress'
username = 'user'
sftp = connSFTP(ssh_key_filepath,hostname,username)
print('Connected')
time.sleep(30)
#sftp.close()
if __name__ == '__main__':
main()
我内置了一个睡眠,所以我可以杀死连接的过程并模拟连接丢失的时间。
您应该对以下内容使用异常处理:
提出: BadHostKeyException – 如果无法验证服务器的主机密钥
提出: AuthenticationException – 如果身份验证失败
提出: SSHException – 如果连接或建立 SSH 会话时出现任何其他错误
提出: socket.error – 如果连接时发生套接字错误
Paramiko api 文档 link:http://docs.paramiko.org/en/1.15/api/client.html#paramiko.client.SSHClient.connect