特殊文字を使用したAWS s3 CLi grepコマンド

特殊文字を使用したAWS s3 CLi grepコマンド

次の行がある場合は、AWS S3バケットに保存されているログ全体をコピーしたいと思います。

\"Key\" : 951332,\n

私は次のことを試して逃げようとしました。

aws s3 ls s3://bucket_name | grep "/\"Key/\" : 951332,/\n" --recursive

しかし、何の対価も得られませんでしたが、この方法でgrepを実行する方法を知っている人はいますか?

答え1

を使用してS3をマウントしてs3fs実行します。

grep -r Key /PATH/TO/MOUNT/POINT/

...その後、パイプを通してgrep 951332これがあなたの場合に十分であることを確認してください。

AWS でローカルで実行しないと時間がかかり、AWS DataTransfer コストが発生する可能性があります。したがって、同じVPCのEC2インスタンスでそれを実行することをお勧めします

とにかく、このアプローチを使用して高価であっても、AWS からローカルに移動するのに十分勇敢な場合は、stdout と stderr をいくつかのドキュメントにリダイレクトし、必要に応じて後で確認できるように高価なコマンドを再実行することをお勧めします。ライン。

要約すると、こう言うことができます。

grep -r Key /PATH/TO/MOUNT/POINT/ | \
        grep 951332 \
        >/LOCAL/PATH/TO/grep_stdout \
        2>/LOCAL/PATH/TO/grep_stderr
#   In /LOCAL/PATH/TO/grep_stdout should be the paths to the docs you
# were searching.

または:

grep -r Key /PATH/TO/MOUNT/POINT/ | \
        grep 951332 &>/LOCAL/PATH/TO/all_grep_outputs
#   In /LOCAL/PATH/TO/all_grep_outputs should be the paths to the docs you
# were searching.

答え2

Cloudgrep は次の場合に便利です。

./cloudgrep --bucket test-s3-access-logs --query 9RXXKPREHHTFQD77

関連情報