삭제 옵션으로 aws cli sync 포함 및 제외 사용

삭제 옵션으로 aws cli sync 포함 및 제외 사용
aws s3 sync /WordProcessing/DOCUMENTS s3://mybigbucket --delete --include "*" --exclude ".DS_Store"

어떻게든 .DS_Store가 (이전 백업에서) AWS S3 mybigbucket으로 이동한 경우 위 명령을 사용하면 수동으로 수행하더라도 대상에서 .DS_Store 파일이 삭제되지 않습니다.

rm /WordProcessing/DOCUMENTS/.DS_Store

파일 서버에서.

aws s3 동기화 작동 방식에 대한 논리가 누락되었습니까? 파일 서버의 소스에서 .DS_Store가 제거된 경우 S3 버킷의 대상에서 .DS_Store를 삭제해야 하는 것 같습니다.

--exclude를 해제하고 명령을 다시 실행하면 파일 서버에서 제거된 .DS_Store가 대상에서 삭제됩니다. 그건 옳지 않은 것 같습니다.

내가 잘못된 접근 방식을 취하고 있습니까? 내가 원하는 것은 파일 서버를 밤마다 동기화하고 수천 개의 .DS_Store 파일을 S3 버킷으로 전송하지 않도록 하는 것입니다.

답변1

첫 번째 동기화 후 매개변수를 변경한 것 같습니다.

를 사용하면 --exclude지정된 패턴과 일치하는 명령에서 모든 파일이나 개체가 제외됩니다. 일치하면 해당 패턴에 대한 모든 작업을 무시합니다.

파일(.DS_Store)이 이미 s3 버킷에 있고 옵션 --exclude이 일치하는 경우 이를 무시합니다. 데이터 원본에서 변경되었거나 사라졌는지 여부입니다.

넌 할 수있어:

  1. 첫 번째 및 모든 후속 동기화에서 --exclude를 사용합니다(이렇게 하면 처음에 파일이 s3에서 제외됩니다).
  2. 먼저 로컬 호스트에서 파일을 삭제하고 동기화한 다음 제외 항목을 넣습니다(이렇게 하면 파일이 s3에 있는 경우 파일이 제거되고 추가되지 않습니다).
  3. --exclude를 입력하고 s3에서 파일을 수동으로 삭제합니다(이렇게 하면 파일이 s3에 다시 추가되는 것을 방지할 수 있습니다).

참조

AWS CLI - 동기화

관련 정보