위 게시물에서 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
'Infra > Linux' 카테고리의 다른 글
SSH 키를 통한 패스워드 없는 접근 설정 방법 (0) | 2024.08.27 |
---|---|
CentOS 7 버전 linux에 postgresql 13버전 설치 (0) | 2024.07.15 |
Amazon linux2 yum 관련 (0) | 2024.07.11 |
tomcat log catalina.out alias등록 (0) | 2023.10.23 |
AWS EC2 ssh 비밀번호로 접속 (0) | 2023.10.23 |