データベースのバックアップを含むS3バケットがあります。私は最新のバックアップをダウンロードしたい(そして最終的には別の場所に復元する)スクリプトを作成していますが、バケットから最新のファイルを取得するしか方法がわかりません。AWS CLIを使用してS3バケットに最新のファイルをダウンロードしていますか?
AWS CLIツールを使用して、最新のファイルのみをs3バケットからローカルディレクトリにコピーすることはできますか?
データベースのバックアップを含むS3バケットがあります。私は最新のバックアップをダウンロードしたい(そして最終的には別の場所に復元する)スクリプトを作成していますが、バケットから最新のファイルを取得するしか方法がわかりません。AWS CLIを使用してS3バケットに最新のファイルをダウンロードしていますか?
AWS CLIツールを使用して、最新のファイルのみをs3バケットからローカルディレクトリにコピーすることはできますか?
これはあなたが取ることができるアプローチです。
$ aws s3 ls $BUCKET --recursive
2015-05-05 15:36:17 4 an_object.txt
2015-06-08 14:14:44 16322599 some/other/object
2015-04-29 12:09:29 32768 yet-another-object.sh
彼らはキーでアルファベット順にソートしているが、それ最初の列は、最終更新時刻です:
あなたはaws s3 ls $BUCKET --recursive
でバケット内のすべてのオブジェクトを一覧表示することができます。
$ aws s3 ls $BUCKET --recursive | sort
2015-04-29 12:09:29 32768 yet-another-object.sh
2015-05-05 15:36:17 4 an_object.txt
2015-06-08 14:14:44 16322599 some/other/object
tail -n 1
が最後の行を選択し、awk '{print $4}'
は、第4列(オブジェクト名)を抽出:クイックsort
日付によってそれらの順序を変更します。
$ KEY=`aws s3 ls $BUCKET --recursive | sort | tail -n 1 | awk '{print $4}'`
$ aws s3 cp s3://$BUCKET/$KEY ./latest-object
をそしてここでbashスクリプトは、@ error2007sの回答に基づいて作成することです:
$ aws s3 ls $BUCKET --recursive | sort | tail -n 1 | awk '{print $4}'
some/other/object
なく、少なくとも最後に、オブジェクトをダウンロードするaws s3 cp
にそのドロップします。このスクリプトでは、awsプロファイルとバケット名が変数として必要となり、〜/ Downloadsフォルダに最新のオブジェクトをダウンロードします。
#!/bin/sh
PROFILE=your_profile
BUCKET=your_bucket
OBJECT="$(aws s3 ls --profile $PROFILE $BUCKET --recursive | sort | tail -n 1 | awk '{print $4}')"
aws s3 cp s3://$BUCKET/$OBJECT ~/Downloads/$OBJECT --profile $PROFILE
スクリプトにはどのようなものを使用しますか? SDK、CLIまたは何か他のもの?また、S3でバックファイルの名前を付けています – error2007s
最新のものはどういう意味ですか?ファイルには異なる名前はありませんか? – Shibashis
s3ファイルのバージョン管理を使用していますか? – Shibashis