AWS S3 에서 오래된 파일을 삭제하는 방법
aws s3 ls 로 파일을 조회하면 아래처럼 파일이 S3 에 마지막으로 수정된 시간을 나타냅니다.
1 2 3 4 | [root@test ~]# aws s3 ls s3://bucket/test/ 2020-07-28 21:06:39 0 a 2020-07-28 21:06:39 0 b 2020-07-28 21:06:39 0 c | cs |
수정된 시간을 기준으로 특정 기간이 지난 파일을 삭제하는 스크립트 입니다.
4 line : to 에는 삭제를 원하는 폴더의 경로를 입력 ( 마지막에 / 를 기입해 주셔야 합니다. )
10 line : 7 days ago 에는 원하는 기간을 입력
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | #!/bin/bash # s3 에서 7일이 지난 백업파일은 삭제 to="s3://bucket/backup/" aws s3 ls $to | while read -r line; do createDate=`echo $line | awk {'print $1" "$2'}` createDate=`date -d"$createDate" +%s` olderThan=`date --date "7 days ago" +%s` if [[ $createDate -lt $olderThan ]] then fileName=`echo $line | awk {'print $4'}` if [[ $fileName != "" ]] then aws s3 rm $to$fileName fi fi done; | cs |
아래 링크의 원본 스크립트에서 필요한 부분을 수정했습니다.
https://shout.setfive.com/2011/12/05/deleting-files-older-than-specified-time-with-s3cmd-and-bash/
'AWS > S3' 카테고리의 다른 글
[AWS] S3 rm 폴더 삭제하는 방법 (0) | 2020.07.28 |
---|---|
[AWS] S3 rsync 와 cp 명령어 사용법과 차이점 (0) | 2020.07.28 |