SFTPサーバーから複数のフォルダ、複数のファイルなど大量のデータをダウンロードしています。私がダウンロードするすべてのアイテムのグラフは、木の枝でいっぱいの森のように見えます。
プロジェクトの現在のアイデアは次のとおりです。
- すべてのファイルをローカル環境にFTPに転送する
- すべてのファイルがローカル環境にある場合は解凍します。
- 各ファイルに対してデータ整合性チェックを実行します。
- 自動的に構成されたストレージを使用して、手順3で解凍したすべてのデータをデータベースシステムにプッシュします。
AWSのEC2インスタンスに接続されているEBSボリュームにすべてのデータをローカルに保存します。上記の最初のステップを開始した後、インスタンスに戻ってみると、EBSボリュームがいっぱいになりました。そのため、ハードドライブのサイズを倍増し、最初のステップを再開しました。そして数時間後にボリュームが再びいっぱいになったという事実を発見しました。
上記のプロセスを作成した後は、一度に非常に多くのスペースを消費しないように、データの複数のサブセットを繰り返し処理するいくつかのスクリプトを開発する価値があります。しかし、私は怠惰に数時間以内に膨大な量のEBSボリュームをプロビジョニングし、これらすべての作業を一度に実行して数時間の開発時間を節約したかったのです。
SFTP(Sshなし、他のプロトコルなし)を介してのみデータにアクセスできることを考えると、これらのすべてのファイルがディスク上でどのくらいのスペースを占めているかを知らせるFTPコマンドはありますか?この情報を使用して、構成するEBSボリュームサイズの下限を知りたいです。
答え1
lftp
du
すべてを再帰的に一覧表示して要約するsftp(またはおそらくlftpがサポートするすべてのプロトコル)を介して実行できる組み込みコマンドがあります。
$ lftp sftp://user@hostname/
lftp HOST:~> du -s
… wait a while …
1656724 .
lftpはカプセル化されています。ダーバン、Ubuntuと複数のRPMベースのディストリビューション。