EC2 인스턴스에서 "aws s3 sync"를 사용하려고합니다. '-제외'옵션이 깨졌습니까?


8

EC2 인스턴스에 사전 설치된 Amazon 공식 도구를 사용하여 EC2 인스턴스를 S3로 백업하려고합니다. 동기화에서 디렉토리를 제외하도록 sync 명령을 가져 오는 데 어려움이 있습니다. 문서 는 쉽게 '--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'이라는 모든 폴더와 해당 폴더의 모든 파일을 동기화에서 제외하고 싶습니다.

문서 에서 판단 '-제외'에 제공 한 패턴이 작동합니다. 그러나 전체 .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 '*'

실제로 '-제외'는 글 로빙이 절대 경로의 오른쪽에있는 경우에만 작동합니다. 예를 들어 /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를 허용 합니다.

나는 노력하고 --exclude ".git/*"작품을 추가 했습니다.

결말 /*이 필요합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.