如何检查 SFTP 服务器上的磁盘空间

kje*_*ilh 13 ftp sftp disk-space-utilization

最近我在 SFTP 服务器上遇到磁盘空间不足的问题,我意识到我不知道如何检查剩余多少甚至总数。

有谁知道如何通过像 FileZilla 这样的应用程序来做到这一点,或者可能有一个可以用于此目的的命令?

请注意,服务器托管在第三方,​​我希望有一种方法可以在不经过它们的情况下回答这个问题。

更新:

我尝试使用 putty 和 cygwin ssh 通过 shell 进行连接。当 cygwin 给我以下错误消息时,Putty 默默地失败了:

$ ssh [user]@[host] -i "[priv.key]"
Last login: Wed Aug 17 12:54:46 2011 from 195.204.103.176
Could not chdir to home directory /local00/ftproot/[user]: No such file or directory
/usr/local/sbin/scponlyc: No such file or directory
Connection to [host] closed.
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

Mar*_*ryl 16

所述scponly壳可以允许quota命令(如果启用)。但似乎您已scponly配置为仅支持 SFTP,不允许 shell 访问。

SFTP 协议允许检查磁盘空间(与其他答案所说的相反)。

SFTP 中提取- 检查stackoverflow.com 的可用空间问题:

SFTP 协议版本 6 允许检查可用空间(SSH_FXP_EXTENDED请求名称space-available)。尽管大多数 SSH/SFTP 服务器(尤其是 OpenSSH,作为最普遍的服务器)仅支持 SFTP 版本 3。

另一方面,OpenSSH 支持statvfs@openssh.com专有扩展。

某些 SFTP 客户端支持 OpenSSH 扩展。

  • 显然是由 OpenSSHsftp客户端通过以下df命令:

    df [-hi] [path]
    显示保存当前目录(或路径,如果指定)的文件系统的使用信息。如果-h指定了标志,则将使用“人类可读”后缀显示容量信息。-i除了容量信息外,该标志还要求显示 inode 信息。此命令仅在实现 ''statvfs@openssh.com'' 扩展的服务器上受支持。

    sftp> df -h
        Size     Used    Avail   (root)    %Capacity
       591GB    358GB    203GB    233GB          60%
    
    Run Code Online (Sandbox Code Playgroud)
  • WinSCP 也支持它(请参阅服务器和协议信息对话框):

    WinSCP 服务器和协议信息对话框

    (我是 WinSCP 的作者)

  • 不幸的是,并非所有服务器都支持: sftp> df 服务器不支持 statvfs@openssh.com 扩展 (2认同)

wom*_*ble 1

ssh <host> df -h
Run Code Online (Sandbox Code Playgroud)

在没有磁盘配额之类的情况下,将为您提供所有必要的信息。如果您没有 shell 访问权限(或某种运行命令的方式,例如通过 PHP exec),那么您无法检查磁盘空间,但话又说回来,如果您没有 shell,您怎么能有责任管理服务器并管理磁盘空间?