SFTPサーバー上のすべてのファイルを一覧表示し、すべてのファイルの合計サイズを取得する方法は?

SFTPサーバー上のすべてのファイルを一覧表示し、すべてのファイルの合計サイズを取得する方法は?

私は以下を使用してSFTPサーバーに接続します。

sftp -i key.pem user@server

サーバーには、最大4日までのリストを表示するために使用できるログが含まれていますls。問題は、lsが4日より古いログを取得できないようです。ディレクトリ内のすべてのログを一覧表示し、全体のサイズを確認する方法を知りたいです。

サイズに関する同様の質問が提起されました。ここ使用のためのソリューションを提供しますdu -hc。しかし、このコマンドは私のSFTPサーバーには存在せず、SSHアクセス権もありません。どんなアイデアがありますか?

答え1

lftpduコマンドとサポートされているプロトコルがありますsftp

lftp sftp://user@host

または、パスワードプロンプトを使用してスキップするには、SSHキーを指定します。

lftp -e 'set sftp:connect-program ssh -axi key.pem' sftp://user:@host

プロンプトで実行しますdu(またはdu -ba各ファイルとそのサイズをバイト単位で一覧表示するか、du -haサフィックスを使用します)sftpduディスク使用量ではなく見かけのサイズを提供し、ディレクトリファイルのサイズを含まないという点で、Unixコマンドとは異なります。

4日より古いファイルがリストされていない場合は、lsそのファイルが存在しないか、もう存在しない可能性が最も高いです。または、クライアントlsのコマンドのみが実行されます。sftplftpSFTPプロトコルの「ディレクトリ読み取り」クエリまたは一連のクエリディレクトリの内容を検索します。サーバーがコンテンツを送信せずにSFTPを介さずにデータにアクセスする他の方法がなければ、できることはほとんどありません。

関連情報