如何列出 sftp 伺服器中的所有檔案並取得所有檔案的總大小?

如何列出 sftp 伺服器中的所有檔案並取得所有檔案的總大小?

我使用連接到 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的命令將只執行sftplftpSFTP 協定中的「讀取目錄」查詢或一系列查詢檢索目錄內容。如果伺服器不發送其中的內容,並且除了透過 SFTP 之外您沒有任何其他方式存取數據,那麼您幾乎無能為力。

相關內容