从客户端请求服务器文件的递归列表
Request recursive list of server files from client
我需要定期(每天或每周)获取文件夹及其所有子文件夹中文件的完整列表,以检查更改。该文件夹位于我作为网络共享访问的服务器上。
该文件夹目前包含大约 250,000 个子文件夹,并且将来会继续增长。
除了能够挂载文件系统 R/W.
之外,我无法访问服务器
我目前检索文件列表的方法是在文件夹上递归使用 python 的 os.walk()
函数。这受到互联网连接延迟的限制,目前大约需要 4.5 小时才能完成。
一种更快的方法是在服务器端创建一个包含整个文件列表的文件,然后将此文件传输到我的计算机。
有没有办法从客户端请求这样的文件递归列表?
python 解决方案将是完美的,但我也愿意接受其他解决方案。
我的脚本目前在 Windows 上 运行,但将来可能会移至 Linux 服务器; OS 不可知论的解决方案是最好的。
您可以通过多种方式解决这个问题。我会通过在 ssh 上做一个 运行ning 脚本来做到这一点,比如
ssh xys@server 'bash -s' < local_script_togetfilenames.sh
如果您更喜欢 python,您可以 运行 一个类似的 python 脚本,方法是添加 #!python 假设 python 安装在服务器上
如果你想完全坚持 python 你应该探索 python RPC(远程进程调用)
您可以使用 rPyC 库。文档是
here
您已提供问题的答案:
I do not have any access to the server other than the ability to mount the filesystem R/W.
此后无需添加任何内容,因为任何服务器端处理都需要能够(直接或间接)在服务器上启动进程。
如果您可以与服务器管理员合作,您可以要求他们定期启动服务器端脚本,该脚本将构建包含您需要的文件的压缩存档(例如 zip 文件),并将其移动到特定的位置完成后的位置。然后你只需要下载那个压缩包就可以节省大量的网络带宽。
我需要定期(每天或每周)获取文件夹及其所有子文件夹中文件的完整列表,以检查更改。该文件夹位于我作为网络共享访问的服务器上。 该文件夹目前包含大约 250,000 个子文件夹,并且将来会继续增长。 除了能够挂载文件系统 R/W.
之外,我无法访问服务器我目前检索文件列表的方法是在文件夹上递归使用 python 的 os.walk()
函数。这受到互联网连接延迟的限制,目前大约需要 4.5 小时才能完成。
一种更快的方法是在服务器端创建一个包含整个文件列表的文件,然后将此文件传输到我的计算机。
有没有办法从客户端请求这样的文件递归列表?
python 解决方案将是完美的,但我也愿意接受其他解决方案。 我的脚本目前在 Windows 上 运行,但将来可能会移至 Linux 服务器; OS 不可知论的解决方案是最好的。
您可以通过多种方式解决这个问题。我会通过在 ssh 上做一个 运行ning 脚本来做到这一点,比如
ssh xys@server 'bash -s' < local_script_togetfilenames.sh
如果您更喜欢 python,您可以 运行 一个类似的 python 脚本,方法是添加 #!python 假设 python 安装在服务器上
如果你想完全坚持 python 你应该探索 python RPC(远程进程调用) 您可以使用 rPyC 库。文档是 here
您已提供问题的答案:
I do not have any access to the server other than the ability to mount the filesystem R/W.
此后无需添加任何内容,因为任何服务器端处理都需要能够(直接或间接)在服务器上启动进程。
如果您可以与服务器管理员合作,您可以要求他们定期启动服务器端脚本,该脚本将构建包含您需要的文件的压缩存档(例如 zip 文件),并将其移动到特定的位置完成后的位置。然后你只需要下载那个压缩包就可以节省大量的网络带宽。