我使用连接到 sftp 服务器
sftp -i key.pem user@server
服务器包含日志,我可以使用 列出长达 4 天的日志ls
。问题是 ls 似乎无法获取超过 4 天的日志。我想知道如何列出目录中的所有日志并获取它们的总大小?
关于尺寸的类似问题已被问到这里并提供了使用的解决方案du -hc
。但我的 sftp 服务器上不存在此命令,我也没有 ssh 访问权限。有任何想法吗?
答案1
lftp
有一个du
命令并且支持sftp
协议:
lftp sftp://user@host
或者指定要使用的 ssh 密钥并跳过密码提示:
lftp -e 'set sftp:connect-program ssh -axi key.pem' sftp://user:@host
并在提示符下运行du
(或du -ba
列出每个文件及其大小(以字节为单位),或du -ha
使用后缀)sftp
。请注意,它与 Unixdu
命令不同,它给出的是表观大小而不是磁盘使用情况,并且不包括目录文件的大小。
如果ls
没有列出超过 4 天的文件,最可能的解释是它们不存在或不再存在。或客户端ls
的命令将只执行sftp
lftp
SFTP 协议中的“读取目录”查询或一系列查询检索目录内容。如果服务器不发送其中的内容,并且除了通过 SFTP 之外您没有任何其他方式访问数据,那么您几乎无能为力。