로그 파일 삭제 쉘 스크립트 만들기(날짜 20xx, 용량)

httpd.conf 파일에 access_log 및 error_log를 설정 했을 때 logrotate 설정이 아닌 경우 로그 파일 삭제 쉘 스크립트가 필요할 때가 있습니다.

✅ 로그 파일 삭제 쉘 스크립트

## access_log* 1G 이상 삭제

#!/bin/bash
find /usr/local/tomcat9/logs/  -name "access.*" -size +800M -exec rm -f {} \;

##  log_* 9일 이상

#!/bin/bash
find /usr/local/apache/logs/access/  -name "access_*" -mtime +9 -exec rm -f {} \;

# 다른 예시 
find /usr/local/apache/logs/error/ -name "error_log.*" -mtime +7 -exec rm -f {} \;
find /usr/local/apache/logs/ -name "access_log.*" -mtime +7 -exec rm -f {} \;

✅ crontab 설정하기

크론탭 설정을 진행 해 줍니다.

~]# crontab -e
# 매주 금요일 4시 30분 9일 이상 된 access_* 파일 삭제 
30 04 * * 5 shell/log_delete.sh

~]# systemctl restart crond ## crontab -e 로 수정한 경우 굳이 재시작을 할 필요 없이 적용됩니다.

~]# systemctl status  crond
 crond.service - Command Scheduler
     Loaded: loaded (/usr/lib/systemd/system/crond.service; enabled; preset: enabled)
     Active: active (running) since Sun 2024-01-21 14:19:33 UTC; 6s ago
   Main PID: 13735 (crond)
      Tasks: 1 (limit: 10823)
     Memory: 960.0K
        CPU: 2ms
     CGroup: /system.slice/crond.service
             └─13735 /usr/sbin/crond -n

Jan 21 14:19:33 ip-172-31-11-71.ap-northeast-2.compute.internal systemd[1]: Started Command Scheduler.
Jan 21 14:19:33 ip-172-31-11-71.ap-northeast-2.compute.internal crond[13735]: (CRON) STARTUP (1.5.7)
Jan 21 14:19:33 ip-172-31-11-71.ap-northeast-2.compute.internal crond[13735]: (CRON) INFO (Syslog will be used instead of sendmail.)
Jan 21 14:19:33 ip-172-31-11-71.ap-northeast-2.compute.internal crond[13735]: (CRON) INFO (RANDOM_DELAY will be scaled with factor 8% if used.)
Jan 21 14:19:33 ip-172-31-11-71.ap-northeast-2.compute.internal crond[13735]: (CRON) INFO (running with inotify support)
Jan 21 14:19:33 ip-172-31-11-71.ap-northeast-2.compute.internal crond[13735]: (CRON) INFO (@reboot jobs will be run at computer's startup.)
쉘 스크립트(Shell Script)

리눅스 스크립트는 리눅스 운영 체제에서 해석하는 스크립트 언어로 작성된 명령 또는 명령 집합입니다. 리눅스 시스템에서 반복 작업을 자동화 할 때 많이 사용하게 됩니다.

쉘 스크립트는 Bash Shell Script 외에도 Perl, Python, Ruby 등 다양한 스크립트 언어로 작성할 수 있습니다.

Similar Posts

  • 리눅스 셸 환경(Shell Environment) 정의 및 이해와 쉘 환경변수 | Shell 시작 파일 2가지

    셸 세션을 이용해서 서버와 상호 작용을 할 때 해당 동작과 리소스에 대한 연결을 결정하기 위해 컴파일 하는 많은 정보가 있습니다. 이러한 서정 중 일부는 구성 설정에 포함되어 있으며, 다른 설정은 사용자 입력에 의해 결정됩니다. 리눅스 셸 환경은 셸의 구성 설정과 사용자 입력에 의해 결정된 설정을 유지관리 영역을 이용해 관리하는 가장 일반적인 방법을 이용하게…

  • 셸 스크립트: 변수(variable)와 상수(constant)

    셸 스크립트에서 변수란 단어가 가진 의미는 변할 수 있는( variable) 값이다. 또 상당수의 애플리케이션에서 변수가 이와 같은 의미로 사용되고 있다. 상수(constant)는 이름이 정의되고 값이 지정된다는 점은 변수와 같다. 하지만 그 값은 변하지 않는다는 점이 다르다. 쉘은 변수와 상수를 따로 구분하지 않는데 용어를 구분하는 이유는 쉘 이용자의 편의를 위해서이다. 목차✅ 로그 파일 삭제 쉘…

  • [Linux] 쉘(Shell)과 커널&쉘 스크립트 및 프롬프트

    리눅스에 대해 공부하면서 터미널 창에서 명령어를 입력해서 관리를 하지만 시스템 자체에 대한 공부가 리눅스 서버를 운영하는데 많은 도움이 되기 때문에 기초와 개념에 대해 알아야 할 필요성을 가지게 되었습니다. 리눅스 쉘(Shell)과 쉘 스크립트(Shell Script) 그리고 프롬프트(Prompt)의 기본 개념에 대해 알아 보겠습니다. 목차✅ 로그 파일 삭제 쉘 스크립트✅ crontab 설정하기✅ 쉘(Shell)이란? Shell은 껍데기, 주변이라는 뜻을 가지고…

  • 셸 스크립트: 셸 들여쓰기 및 확장 옵션명[long 옵션명]

    명령어를 길게 사용하다 보면 여러 명령어 줄을 넘겨서 입력하는 경우가 발생합니다. 가독성을 높이기 위해 명령어를 문장 연결 하는 백슬래시(\)를 사용하여 셸 들여쓰기를 할 수 있습니다. 목차✅ 로그 파일 삭제 쉘 스크립트✅ crontab 설정하기1. 셸 들여쓰기: 백슬래시(\) 백슬래시-라인피드 문자열이며 LF(Line Feed)는 커서를 한칸 아래로 이동하여 새로운 라인을 추가합니다. 2. 확장 옵션명: long 옵션명 보통 명령어…

  • 셔뱅(Shebang) [#! /bin/bash]

    shebang (셔뱅 또는 해시뱅)은 스크립트 파일의 첫 줄에 쓰이는 #!(해시 기호 + 느낌표)로 시작하는 구문입니다. 이 줄은 해당 스크립트를 어떤 인터프리터로 실행 할지를 지정합니다. 인터프리터(interpreter)는 프로그래밍 언어로 작성된 코드를 한 줄씩 읽고 즉시 실행하는 프로그램입니다. 이는 “작성된 명령을 번역해서 곧바로 실행해주는 번역기”라고 볼 수 있습니다. 보통 ASCII 텍스트 파일로 작성된 셸 스크립트에서 해시…

  • 셸 스크립트란? 셸과 셸 프롬프트&bash shell

    목차✅ 로그 파일 삭제 쉘 스크립트✅ crontab 설정하기 ▥ 셸 스크립트란(shell script)? 1. 셸이란? 키보드에 입력한 명령어를 운영체제에 전달해서 전달한 명령어를 실행하게 하는 프로그램이다. 2. 셸 프롬프트 셸 프롬프트는 셸이 입력 가능한 상태일 때에만 나타난다. 달러 ($)는 일반 유저일 때, 해쉬 표시(#)는 터미널 세션이 슈퍼 유저(superuser)의 권한을 가졌을 때 표시된다. (#)는 루트(root) 사용자 로그인…

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

Prove your humanity: 6   +   5   =