S3 Spacesから最新の150ファイルをダウンロードしたいです。

S3 Spacesから最新の150ファイルをダウンロードしたいです。

S3 Spacesから最新の150ファイルをダウンロードしたいです。このコマンドを使用しました

s3cmd get s3://obs/site1/uploads/large/ /home/ankit -r | tail -n150

しかし、私が望む効果はありません。代わりに、すべてのファイルのダウンロードを開始します。

たとえば:私が命令した場合: 入力する s3cmd ls s3://obs/site1/uploads/large/

出力

2020-04-30 20:04         0   s3://obs/site1/uploads/large/
2020-04-30 20:04   1401551   s3://obs/site1/uploads/large/501587671885rwk.jpg
2020-04-30 20:04    268417   s3://obs/site1/uploads/large/501587676002xe2.jpg
2020-04-30 20:04    268417   s3://obs/site1/uploads/large/501587677157ssj.jpg
2020-04-30 20:04    268417   s3://obs/site1/uploads/large/501587747245hea.jpg
2020-05-01 05:23    399636   s3://obs/site1/uploads/large/87429599_1412258992269430_5992557431891165184_o.jpg

最後のファイル(最新ファイル)だけをダウンロードしたいです。

2020-05-01 05:23    399636   s3://obs/site1/uploads/large/87429599_1412258992269430_5992557431891165184_o.jpg

最新のファイルを一覧表示できますが、最新のファイルをダウンロードすることはできません。私がリストするものは次のとおりです。

s3cmd ls s3://obs/site1/uploads/large/ | tail -n1

出力:2020-05-01 05:23 399636

s3://obs/site1/uploads/large/87429599_1412258992269430_5992557431891165184_o.jpg

それでは、この最新のファイルだけをダウンロードするコマンドを教えてください。

ベストアンサー1

すべての部分が所定の位置にあるので、一緒に接続するだけです。

このコマンドは目的の最後のファイルを提供しますが、結果の最初の部分を切り取る必要があります。

s3cmd ls s3://obs/site1/uploads/large/ | tail -n1
2020-05-01 05:23    399636   s3://obs/site1/uploads/large/87429599_1412258992269430_5992557431891165184_o.jpg

s3cmd ls s3://obs/site1/uploads/large/ | sed -rn 's!^.*(s3://)!\1!p' | tail -n1
s3://obs/site1/uploads/large/87429599_1412258992269430_5992557431891165184_o.jpg

このコマンドはファイルをダウンロードします

s3cmd get s3://obs/site1/uploads/large/some_file_or_other /home/ankit

それで、あなたはそれらを一つにまとめました。

file=$(s3cmd ls s3://obs/site1/uploads/large/ | sed -rn 's!^.*(s3://)!\1!p' | tail -n1)
s3cmd get "$file" /home/ankit

s3cmd ls質問の別の部分で複数のファイルをダウンロードすることについて議論したので、以下は最後の150個のファイルを順番にインポートするこの方法の拡張です。

s3cmd ls s3://obs/site1/uploads/large/ |
    tail -n150 |
    while read -r date time size s3path
    do
        s3cmd get "$s3path" /home/ankit
    done

おすすめ記事