https://yes5.tistory.com/28

 

EC2 - S3 파일 복사

EC2 서버와 S3 버켓은 구축 되어 있다고 가정하고 시작한다. 안 되어 있다면 https://yes5.tistory.com/29 AWS EC2 생성 (ubuntu 프리티어) EC2 검색 > 인스턴스 인스턴스 시작 클릭 이름 지정 OS 선택 (여기선 ubun

yes5.tistory.com

위 게시물에서 EC2 - S3 간 통신을 다뤘습니다.

이제 로그 백업 시스템을 만들어 보겠습니다.

 

 

vi /home/script/wasbck.sh

#!/bin/bash

# Hostname
HOSTNAME='TWAS01'
#HOSTNAME=`hostname -f`

# Date
# Date 함수 기반 포멧 지정
DATEYMDM=$(date +"%Y-%m-%d" -d '1 days ago')
DATEYMD=$(date +"%Y%m%d" -d '1 days ago')
DATEYM=$(date +"%Y%m" -d '1 days ago')
DATED=$(date +"%d" -d '1 days ago')

# Dir
# tomcat, S3 경로
TOMDIR='/etc/tomcat/logs'
WLOGDIR='/etc/tomcat/was_logs'
S3DIR='s3://kimohseong-test/was'

# 1.copy catalina.out log
aws s3 cp ${TOMDIR}/catalina.out-${DATEYMD}.gz ${S3DIR}/${DATEYM}/${DATED}/${HOSTNAME}/catalina.out.${DATEYMDM}.gz

# 2.copy tomcat log
# 2-1.log 압축
tar zcvfP ${WLOGDIR}/catalina.${DATEYMDM}.log.gz ${TOMDIR}/catalina.${DATEYMDM}.log
tar zcvfP ${WLOGDIR}/localhost.${DATEYMDM}.log.gz ${TOMDIR}/localhost.${DATEYMDM}.log
tar zcvfP ${WLOGDIR}/localhost_access_log.${DATEYMDM}.txt.gz ${TOMDIR}/localhost_access_log.${DATEYMDM}.txt

# 2-2 copy to s3
aws s3 cp ${WLOGDIR}/catalina.${DATEYMDM}.log.gz ${S3DIR}/${DATEYM}/${DATED}/${HOSTNAME}/catalina.${DATEYMDM}.log.gz
aws s3 cp ${WLOGDIR}/localhost.${DATEYMDM}.log.gz ${S3DIR}/${DATEYM}/${DATED}/${HOSTNAME}/localhost.${DATEYMDM}.log.gz
aws s3 cp ${WLOGDIR}/localhost_access_log.${DATEYMDM}.txt.gz ${S3DIR}/${DATEYM}/${DATED}/${HOSTNAME}/localhost_access_log.${DATEYMDM}.txt.gz

#Hostname

서버에서 Hostname을 지정했다면 #HOSTNAME=`hostname -f` 부분의 주석을 풀고 사용

 

#Date

위 스크립트에선 파일 전송을 새벽에 할 계획이기 때문에 로그 저장 날짜를 전송 날짜 전일로 지정

전송 날짜로 지정 하신다면 #Date 부분에 -d '1 days ago' 를 제외하시면 됩니다.

 

#Dir

예시는 tomcat 기준의 경로이며 기본 디폴트 경로가 아님. 필요한 로그의 데몬 경로에 맞게 지정 후 사용

S3DIR 경로도 자신의 버켓 주소로 변경

 

#copy

EC2 서버에 7일, bucket에 90일 저장 후 글래시어에 보낼 계획이기 때문에 mv 명령어 대신 cp 사용

이후 crontab에 삭제 명령어 추가

 

 

crontab -e

0 4 * * * /home/script/wasbck.sh
0 5 * * * find /etc/tomcat/logs/ -type f -mtime +7 -delete
0 6 * * * find /etc/tomcat/was_logs/ -type f -mtime +7 -delete

service crond restart

 

 

 

 

 

+ Recent posts