1. 오늘은
지난 시간의 '시스템에 있는 특정 파일(디렉토리)를 S3로 자동으로 백업 하는 방법' 에 이어서, S3 에 저장되어 있는 파일인데,
특정 시간이 지난 파일을 찾아서 자동으로 삭제하는 스크립트를 만들어 볼게.
시스템에 있는 특정 파일(디렉토리)를 S3로 자동으로 백업 하는 방법은 이전의 게시물을 확인 해줘.
https://uncools.tistory.com/12
[CLOUD] 시스템의 특정 디렉토리를 S3로 자동 백업하기 (s3 백업 스크립트)
1. Amazon S3 Amazon S3(Amazon Simple Storage Service)는 업계 최고의 확장성과 데이터 가용성 및 보안과 성능을 제공하는 객체 스토리지 서비스이다. 즉, 어떤 규모 어떤 사업의 고객이든 이 서비스를 사용하
uncools.tistory.com
2. 구현 기능 정리
1. 삭제 대상의 파일을 설정으로 만들고 숫자로 설정 할 수 있게 하자.
- 즉 90일 이면 90 만 넣어 놓으면 , 오늘로 부터 90일 이전에 S3에 업로드된 파일을 찾는 거야.
2. 삭제 대상 파일이 되는 파일의 전체 개수를 세고 > 더하고 > 출력 결과에 표시하자.
3. 각 작업에 대하여 아래와 같이 추적하자.
- S3 에서 있는 파일의 삭제 작업 성공
>> 삭제가 성공한 파일의 이름을 s3://형태로 전체 경로를 만들어 변수에 저장하자
>> 삭제가 성공된 파일의 개수를 세어서 변수로 저장하자
- S3 에서 있는 파일의 삭제 작업 실패
>> 삭제가 실패한 파일의 이름을 s3://형태로 전체 경로를 만들어 변수에 저장하자.
>> 삭제가 실패된 파일의 개수를 세어서 변수로 저장하자.
4. 작업의 결과는 슬랙 Webhook 으로 전송하여 메시지로 받자.
3. 결과
아래는 최종 실행 결과를 슬랙 Webhook 으로 전송받은 내용이야.
*** s3_file_clean_up ***
- buddy2
- 2023-06-27 08:42:02.303872
[+] run date: 2023-06-27
[+] cut off : 2023-06-19
---> cleaning up 8 days ago
---> scanned (37) files
[+] result
---> clean up success: 37 files
---> clean up failure: 0 files
---> total files: 37 files
1, [success], s3://mywebapp.log/20230612/log_export/com.main.web/2023-06-10/buddy2_node.js.tar.gz
2, [success], s3://mywebapp.log/20230612/log_export/com.main.web/2023-06-10/buddy2_node.js.tar.gz.md
3, [success], s3://mywebapp.log/20230612/log_export/com.main.web/2023-06-10/buddy2_sql.tar.gz
4, [success], s3://mywebapp.log/20230612/log_export/com.main.web/2023-06-10/buddy2_sql.tar.gz.md
5, [success], s3://mywebapp.log/20230612/log_export/com.main.web/2023-06-11/buddy2_node.js.tar.gz
6, [success], s3://mywebapp.log/20230612/log_export/com.main.web/2023-06-11/buddy2_node.js.tar.gz.md
7, [success], s3://mywebapp.log/20230612/log_export/com.main.web/2023-06-11/buddy2_sql.tar.gz
8, [success], s3://mywebapp.log/20230612/log_export/com.main.web/2023-06-11/buddy2_sql.tar.gz.md
9, [success], s3://mywebapp.log/20230613/log_export/com.main.web/2023-06-01/buddy2_node.js.tar.gz
10, [success], s3://mywebapp.log/20230613/log_export/com.main.web/2023-06-01/buddy2_node.js.tar.gz.md
11, [success], s3://mywebapp.log/20230613/log_export/com.main.web/2023-06-01/buddy2_sql.tar.gz
12, [success], s3://mywebapp.log/20230613/log_export/com.main.web/2023-06-01/buddy2_sql.tar.gz.md
13, [success], s3://mywebapp.log/20230613/log_export/com.main.web/2023-06-02/buddy2_node.js.tar.gz
14, [success], s3://mywebapp.log/20230613/log_export/com.main.web/2023-06-02/buddy2_node.js.tar.gz.md
15, [success], s3://mywebapp.log/20230613/log_export/com.main.web/2023-06-02/buddy2_sql.tar.gz
16, [success], s3://mywebapp.log/20230613/log_export/com.main.web/2023-06-02/buddy2_sql.tar.gz.md
17, [success], s3://mywebapp.log/20230613/log_export/com.main.web/2023-06-03/buddy2_node.js.tar.gz
18, [success], s3://mywebapp.log/20230613/log_export/com.main.web/2023-06-03/buddy2_node.js.tar.gz.md
19, [success], s3://mywebapp.log/20230613/log_export/com.main.web/2023-06-03/buddy2_sql.tar.gz
20, [success], s3://mywebapp.log/20230613/log_export/com.main.web/2023-06-03/buddy2_sql.tar.gz.md
21, [success], s3://mywebapp.log/20230613/log_export/com.main.web/2023-06-04/buddy2_node.js.tar.gz
22, [success], s3://mywebapp.log/20230613/log_export/com.main.web/2023-06-04/buddy2_node.js.tar.gz.md
23, [success], s3://mywebapp.log/20230613/log_export/com.main.web/2023-06-04/buddy2_sql.tar.gz
24, [success], s3://mywebapp.log/20230613/log_export/com.main.web/2023-06-04/buddy2_sql.tar.gz.md
25, [success], s3://mywebapp.log/20230613/log_export/com.main.web/2023-06-05/buddy2_node.js.tar.gz
26, [success], s3://mywebapp.log/20230613/log_export/com.main.web/2023-06-05/buddy2_node.js.tar.gz.md
27, [success], s3://mywebapp.log/20230613/log_export/com.main.web/2023-06-05/buddy2_sql.tar.gz
28, [success], s3://mywebapp.log/20230613/log_export/com.main.web/2023-06-05/buddy2_sql.tar.gz.md
29, [success], s3://mywebapp.log/20230613/log_export/com.main.web/2023-06-06/buddy2_node.js.tar.gz
30, [success], s3://mywebapp.log/20230613/log_export/com.main.web/2023-06-06/buddy2_node.js.tar.gz.md
31, [success], s3://mywebapp.log/20230613/log_export/com.main.web/2023-06-06/buddy2_sql.tar.gz
32, [success], s3://mywebapp.log/20230613/log_export/com.main.web/2023-06-06/buddy2_sql.tar.gz.md
33, [success], s3://mywebapp.log/20230613/log_export/com.main.web/2023-06-07/buddy2_node.js.tar.gz
34, [success], s3://mywebapp.log/20230613/log_export/com.main.web/2023-06-07/buddy2_node.js.tar.gz.md
35, [success], s3://mywebapp.log/20230613/log_export/com.main.web/2023-06-07/buddy2_sql.tar.gz
36, [success], s3://mywebapp.log/20230613/log_export/com.main.web/2023-06-07/buddy2_sql.tar.gz.md
37, [success], s3://mywebapp.log/20230613/log_export/com.main.web/2023-06-08/buddy2_node.js.tar.gz
4. 코드
코드는 아래에 올려 두었어. 수정과 변형은 자유 :)
https://github.com/password123456/s3_file_clean_up
GitHub - password123456/s3_file_clean_up: A script that searches for and deletes older files in a specific time period from file
A script that searches for and deletes older files in a specific time period from files uploaded to S3. - GitHub - password123456/s3_file_clean_up: A script that searches for and deletes older file...
github.com
'클라우드' 카테고리의 다른 글
[CLOUD] aws cli s3 외부 아웃바운드 통신 허용 목록 (0) | 2023.06.21 |
---|---|
[CLOUD] aws cli s3 명령어 모음 (0) | 2023.06.19 |
[CLOUD] 시스템의 특정 디렉토리를 S3로 자동 백업하기 (s3 백업 스크립트) (0) | 2023.06.16 |
[CLOUD] aws cli 설치와 테스트 (0) | 2023.06.10 |