OS

리눅스 일일 로그 한달 압축 쉘 스크립트

husks 2023. 2. 19. 02:04
반응형

한 달 동안 일일 로그 파일을 하는 쉘 스크립트 입니다.

 

xml_send.log.2023-01-01 이런 형식의 로그라고 가정하고 작성하겠습니다.

 

1. vi 명령을 사용하여 새 파일을 만듭니다

vi monthly_log_compress.sh

2. 파일에 다음 코드를 추가합니다.

#!/bin/bash

# 현재 날짜에서 한달 전 날짜를 계산합니다.
last_month=$(date -d "-1 month" "+%Y-%m")

# 로그 디렉토리 경로를 지정합니다.
log_dir="/home1/irteam/apps/local/batch/xml_send_copyright_or/log"

# 이전달 로그 파일들을 압축합니다.
cd "$log_dir"
tar -cvzf "xml_send_logs_$last_month.tar.gz" "xml_send.log.$last_month-"*

# 압축한 로그 파일들을 삭제합니다.
rm "xml_send.log.$last_month-"*

3. 파일을 저장하고 닫습니다.

 

4. chmod 명령을 사용하여 파일을 실행 가능하게 만드십시오.

chmod +x monthly_log_compress.sh

5. 이제 다음 명령을 사용하여 스크립트를 실행할 수 있습니다.

./monthly_log_compress.sh

이렇게 하면 /home1/irteam/apps/local/batch/xml_send_copyright_or/log 디렉토리에서 이전 달에 생성된 xml_send.log.2023-01-01 ~ xml_send.log.2023-01-31인 모든 로그 파일이 압축되어 xml_send_logs_2023-01.tar.gz 로 압축 됩니다.

 

crontab에 쉘파일 등록하면 관리가 편합니다. (매월 5일 오후 6시 실행)

0 18 5 * * /path/to/monthly_log_compress.sh
반응형