在 python SSHCLient 中将文件从远程服务器完全读取到本地机器?
Read file from remote server completely to local machine in python SSHCLient?
我的问题是文件的大小从 1000 行到 10000 行不等,下面的方法不起作用,因为它只复制几行并关闭
client = SSHClient()
client.load_system_host_keys()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect(drasclientip, username=def_users[i], key_filename=pem_file)
sftp = client.open_sftp()
time.sleep(10)
sftp.get(remote_file, file_dst,None)
time.sleep(20)
sftp.close()
client.close()
我只对文件末尾有一些文本的远程服务文件感兴趣。
我正在考虑两种方法 - 要么使文件传输更快更高效
或者反向读取远程文件 - 这样我至少可以获得最终结果
我在上面的代码中设置了延迟,但效果不错。
所以这对我有用。
- 因为文件太大无法通过 ssh 客户端从远程服务器读取,我只是在寻找文件完成指示,我只能在 EOF 处看到它。
- 我的 startegy 是连接到远程服务器和 运行 'tac' linux 命令 - 反转文件然后我访问反转文件并在开头找到 EOF 结果文件,我能够确认文件的验证
代码:
*SSH 客户端连接到远程服务器
ssh.exec("tac" + filename.txt + " >> filereversed.txt" )
*从远程服务器读取 filereversed.txt 并验证
我的问题是文件的大小从 1000 行到 10000 行不等,下面的方法不起作用,因为它只复制几行并关闭
client = SSHClient()
client.load_system_host_keys()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect(drasclientip, username=def_users[i], key_filename=pem_file)
sftp = client.open_sftp()
time.sleep(10)
sftp.get(remote_file, file_dst,None)
time.sleep(20)
sftp.close()
client.close()
我只对文件末尾有一些文本的远程服务文件感兴趣。
我正在考虑两种方法 - 要么使文件传输更快更高效 或者反向读取远程文件 - 这样我至少可以获得最终结果
我在上面的代码中设置了延迟,但效果不错。
所以这对我有用。
- 因为文件太大无法通过 ssh 客户端从远程服务器读取,我只是在寻找文件完成指示,我只能在 EOF 处看到它。
- 我的 startegy 是连接到远程服务器和 运行 'tac' linux 命令 - 反转文件然后我访问反转文件并在开头找到 EOF 结果文件,我能够确认文件的验证
代码:
*SSH 客户端连接到远程服务器
ssh.exec("tac" + filename.txt + " >> filereversed.txt" )
*从远程服务器读取 filereversed.txt 并验证