Purpose
Delete old log files
오래된 로그 삭제를 위한 명령어
필요한 상황에 맞게 작성하여 Crontab에 추가하여 사용할 수 있다.
A few days ago
# 사용법 1
find -name '/경로/*.log' -mtime +(원하는날짜 -1) |xargs rm
# 사용법 2
find /home/searchuser/sf-1/log/*/*.log -type f -mtime +30 | xargs rm -f
find /home/searchuser/sf-1/log/*/*.log -type f -mtime +30 -exec rm -f {} \;
현재 위치 하위에서 .log 파일을 찾아서 mtime(수정시간)이 30일 이상 된 것을 지움(xargs rm)
Specific month
## 대상 파일 확인
ll --time-style full-iso | awk '{print $6" "$9}' | grep 2021-04
## 대상 파일 삭제
ll --time-style full-iso | awk '{print $6" "$9}' | grep 2021-04 | awk '{print $2}' | xargs rm -f
Use script with crontab
/box/log 밑에 있는 로그를 1주일 간격으로 삭제
0 0 * * * (find /box/log/*/*.log.* -mtime +7 -exec rm -rf {} \;)
30 0 * * * (find /box/log/*/*.log.* ! -name '*.gz' -mtime +1 -exec gzip {} \;)
매일 4시, 14일 지난 로그 삭제 (script 실행)
00 04 * * * /root/scheduled_job/log_delete.sh
log_delete.sh
#!/bin/sh
LOG=/box/java_logs
find $LOG -type f -mtime +14 |xargs rm -f
오래된 로그 이동, 압축, 삭제
기간에 따라 오래된 로그를 archived dir로 이동, 압축, 삭제
## 30일 넘은 로그 파일은 archived 폴더로 이동
/bin/find /box/java_logs/application -name "server.*" ! -name "*.gz" -mtime +30 |xargs mv -t /box/java_logs/application/archived
## archived 하위의 30일 넘은 로그 파일은 gz으로 압축
/bin/find /box/java_logs/application/archived -name "server.*" ! -name "*.gz" -mtime +30 |xargs gzip
## archived 하위의 90일 이상된 파일 삭제
/bin/find /box/java_logs/application/archived -name "*.gz" -mtime +90 -delete
'OS > Linux' 카테고리의 다른 글
[Linux]소스 컴파일 후 systemctl 사용하기 (service 등록하기) (4) | 2022.06.10 |
---|---|
[Linux]경로 상관없이 명령어 실행하기 (0) | 2022.06.08 |
[Linux]How to use ln command - make links between files (0) | 2022.05.05 |
[Linux]How to use basename command in CentOS - strip directory and suffix from filenames (0) | 2022.05.02 |
[Linux]How to use scp command in CentOS - secure copy (remote file copy program) (0) | 2022.05.01 |