s3 저장소에서 특정 날짜의 파일만 복사

s3 저장소에서 특정 날짜의 파일만 복사

오늘부터 100개의 파일이 포함된 버킷의 S3에서 파일만 복사하고 싶습니다. 다음을 시도했지만 $ aws s3 ls s3://cve-etherwan/ --recursive --region=us-west-2 | grep 2018-11-06 | awk '{system("aws s3 sync s3://cve-etherwan/$4 . --region=us-west-2") }'제대로 작동하지 않았고 다른 날짜에 대한 파일도 받았습니다. 이 작업을 올바르게 수행하려면 어떻게 해야 합니까?

답변1

두 번째에서는 .Try 를 aws s3사용하기 때문입니다 . "grep"과 "awk"를 함께 결합할 수도 있습니다.synccp

$ aws s3 ls s3://cve-etherwan/  --recursive | awk '/^2018-11-06/{system("aws s3 cp s3://cve-etherwan/$4 .") }'

답변2

이것은 나에게 효과적입니다

  • 시간 제한이 추가되었습니다. 여기서는 19/12/12 8:00 ~ 8:30을 선택합니다.
  • awk 부분을 약간 수정하고 철자 오류를 제거했습니다.
  • 전화하는 대신system Nawk의 시간, 텍스트 출력을 생성하고 bash를 통해 파이프

예, Bash에서 파이프를 사용할 때는 주의하세요 :-)

aws s3 ls --recursive s3://cve-etherwan/ 
| awk '/^2019-12-12 08:[0-3]/{
     print "aws s3 cp s3://cve-etherwan/"$4" ."}'  
| bash

답변3

MLu의 답변은 제게는 효과가 있었지만 Amazon Linux 2에서는 4달러를 내고 도망쳐야 했습니다.

aws s3 ls s3://my-files --recursive --region=eu-west-1 |
  awk '/^2021-01/{system("aws s3 cp s3://my-files/" $4 " .")}'

그리고

  • "aws s3 cp s3://my-files/$4 ."대신에"aws s3 cp s3://my-files/" $4 " ."

  • awk문자열은 기본적으로 연결됩니다.

관련 정보