我使用連接到 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 之外您沒有任何其他方式存取數據,那麼您幾乎無能為力。