gpt4 book ai didi

python - 当我通过 SSH 连接到服务器时,如何获取所有 .log 和 .txt 文件

转载 作者:太空宇宙 更新时间:2023-11-03 13:23:15 26 4
gpt4 key购买 nike

我正在使用 Paramiko 模块登录到服务器(在某些服务器上使用 ssh,在其他服务器上使用 sftp)。我可以从服务器上的特定文件夹中获取文本和日志文件,没问题。但是有很多子目录有 .txt 和 .log 文件。我读了一些 get 方法不接受 (*.txt) 的地方。有谁知道解决这个问题的方法。这是我当前用于登录服务器并获取特定日志的代码:

 import paramiko
import sys
import os





ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('10.5.48.74', username='root', password='******')

ftp = ssh.open_sftp()
ftp.get('/var/opt/crindbios/log/crindbios.log', '.')
ftp.close()

最佳答案

使用以下脚本获取文件列表。然后使用 ftp.get 遍历列表

import paramiko
import os

ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('localhost',username='****')

apath = '/var/log'
apattern = '"*.log"'
rawcommand = 'find {path} -name {pattern}'
command = rawcommand.format(path=apath, pattern=apattern)
stdin, stdout, stderr = ssh.exec_command(command)
filelist = stdout.read().splitlines()

ftp = ssh.open_sftp()
for afile in filelist:
(head, filename) = os.path.split(afile)
print(filename)
ftp.get(afile, './'+filename)
ftp.close()
ssh.close()

这就是 dustyprogrammer 的建议:在远程服务器上,您应用 shell 命令来获取文件列表。然后你用 python 对列表进行后处理。

要下载你必须为每个文件创建一个新的文件路径 - 下载到你建议的目录是行不通的(对我来说)。

关于python - 当我通过 SSH 连接到服务器时,如何获取所有 .log 和 .txt 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6695157/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com