로그 파일 삭제 쉘 스크립트 만들기(날짜 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.)
리눅스 스크립트는 리눅스 운영 체제에서 해석하는 스크립트 언어로 작성된 명령 또는 명령 집합입니다. 리눅스 시스템에서 반복 작업을 자동화 할 때 많이 사용하게 됩니다.
쉘 스크립트는 Bash Shell Script 외에도 Perl, Python, Ruby 등 다양한 스크립트 언어로 작성할 수 있습니다.