我想使用 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
)。