通过 SFTP 获取远程目录大小

通过 SFTP 获取远程目录大小

我想使用 SFTP 获取远程目录的大小。我会在本地运行du -sh,但我的 OpenSSHsftp客户端没有该选项。我想指出的是,我没有 SSH shell 访问权限,因此任何连接都ssh user@server将被断开。

有什么想法吗?也许可以编写解决方案?例如,我可以想象ls -l在我的 SFTP 会话中使用列出所有远程文件,但我必须解析输出并遍历所有子目录。我也愿意使用与 OpenSSH 不同的客户端。

服务器和客户端都运行Linux。

答案1

SSH文件系统使用 SFTP 子系统。这是一个保险丝解决方案,熟悉安全问题。您可以(并且应该)以普通用户身份进行安装:

sshfs user@server:some/path /some/local/mountpoint/

然后在本地使用du -sh。如果您想要的目录的路径在some/path/foo/directory远程系统上,那么您需要使用/some/local/mountpoint/foo/directory

du -sh /some/local/mountpoint/foo/directory

卸载:

fusermount -u /some/local/mountpoint/

注意:上面的示例some/path是相对路径,相对于 SFTP 最初为./您使用的远程目录。字符串./本身(或.空字符串)可用于挂载此精确目录。也可以使用绝对路径(例如/bar/baz/dir)。

相关内容