EC2インスタンスで「aws s3 sync」を使用しようとしています。「--exclude」オプションは壊れていますか?


8

EC2インスタンスにプリインストールされているAmazonの公式ツールを使用して、EC2インスタンスをS3にバックアップしようとしています。同期からディレクトリを除外するための同期コマンドを取得するのが困難です。ドキュメントは、それが簡単に「--exclude」オプションを使用しているように聞こえることができます。しかし、私はそれを動作させることができませんでした。

私はyumから入手可能な最新バージョンを実行しています:

[root@HOSTNAME ~]# aws --version
aws-cli/1.1.1 Python/2.6.8 Linux/3.4.57-48.42.amzn1.x86_64

これは私が問題を抱えているコマンドです:

aws s3 sync /var/www s3://backup-bucket/var/www/ --exclude '*.git/*'

「.git」という名前のすべてのフォルダーとそれらのフォルダー内のすべてのファイルを同期から除外したいのですが。

ドキュメントから判断すると、「-exclude」に指定したパターンは機能するはずです。ただし、.gitディレクトリ全体とそのすべてのファイルは引き続き同期されます。出力の例は次のとおりです。

upload: ../var/www/site/.git/objects/7b/e3cdf203d34a0d7eff30a96a78d20eacee8d77 to s3://backup-bucket/var/www/site/.git/objects/7b/e3cdf203d34a0d7eff30a96a78d20eacee8d77

次のコマンドを試してみましたが、すべて「.git」という名前のフォルダを除外できませんでした。

aws s3 sync /var/www s3://backup-bucket/var/www/ --exclude *.git/*
aws s3 sync /var/www s3://backup-bucket/var/www/ --exclude */.git/*
aws s3 sync /var/www s3://backup-bucket/var/www/ --exclude '.git'
aws s3 sync /var/www s3://backup-bucket/var/www/ --exclude '*\.git/*'
aws s3 sync /var/www s3://backup-bucket/var/www/ --exclude '.*\.git/.*'

そして、おそらく最も厄介なことに、このコマンドは同期から何も除外しません。

aws s3 sync /var/www s3://backup-bucket/var/www/ --exclude '*'

実際、「-exclude」は、グロビングが絶対パスの右側にある場合にのみ機能するようです。たとえば、これは/var/www/site/.gitにある.gitフォルダーを除外します。

aws s3 sync /var/www s3://backup-bucket/var/www/ --exclude '/var/www/site/.git/*'

しかし、これは何も除外しません:

aws s3 sync /var/www s3://backup-bucket/var/www/ --exclude '*/www/site/.git/*'

/ var / wwwに多くのサイトがあり、「。git」、「parsed」、「cache」など、同期から除外したい多くのフォルダーがあります。それらすべてに絶対パスを指定するのは大変です。

ここで私が間違っている単純なことがあるといいのですが。ご協力ありがとうございます。

回答:



2

言及されたgithubの問題は終了し、syncコマンドは今すぐ除外を許可します

--exclude ".git/*"作品を追加してみました。

エンディング/*が必要なことに注意してください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.