最近,我在 SFTP 服务器上遇到了磁盘空间不足的问题,我意识到我不知道如何检查剩余空间量甚至总空间量。
是否有人知道如何通过 FileZilla 之类的应用程序来执行此操作,或者是否有可以用于此目的的命令?
请注意,该服务器由第三方托管,我希望有一种方法可以回答这个问题,而无需通过他们。
更新:
我尝试使用 putty 和 cygwin ssh 通过 shell 进行连接。Putty 默默失败,而 cygwin 给了我以下错误消息:
$ 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.
有任何想法吗?
答案1
shellscponly
可能允许该quota
命令(如果已启用)。但似乎您已将配置scponly
为仅支持 SFTP,并且不允许 shell 访问。
SFTP 协议允许检查磁盘空间(与其他答案所说的相反)。
从中提取SFTP - 检查可用空间stackoverflow.com 的问题:
SFTP 协议版本 6 允许检查可用空间(
SSH_FXP_EXTENDED
请求名称space-available
)。但大多数 SSH/SFTP 服务器(尤其是 OpenSSH,它是最广泛的服务器)仅支持 SFTP 版本 3。另一方面,OpenSSH 支持
[email protected]
专有扩展。
一些 SFTP 客户端支持 OpenSSH 扩展。
显然是由 OpenSSH
sftp
客户通过df
命令:df [-hi] [path]
显示保存当前目录(或指定路径)的文件系统的使用信息。如果-h
指定了该标志,则将使用“人性化”后缀显示容量信息。该-i
标志要求显示除容量信息之外的 inode 信息。此命令仅在实施 '' 的服务器上受支持[电子邮件保护]'' 扩大。sftp> df -h Size Used Avail (root) %Capacity 591GB 358GB 203GB 233GB 60%
WinSCP 也支持它(参见服务器和协议信息对话框):
(我是 WinSCP 的作者)
答案2
ssh <host> df -h
在没有磁盘配额之类的信息的情况下,它将为您提供所有必要的信息。如果您没有 shell 访问权限(或无法通过某种方式运行命令,例如通过 PHP exec
),那么您就无法检查磁盘空间,但是话又说回来,如果您没有 shell,您又怎么能负责管理服务器和管理磁盘空间呢?
答案3
使用 SFTP 命令集不可能获取可用大小或已使用的空间。
如果您能够通过 SSH 连接到服务器(相同的主机、用户和密码),则可以发出一个df -h
来查看可用空间。或者du -h
在文件夹中发出一个来查看文件夹的已用空间。