홈 › 리눅스 운영 › 06 / 13

로그·디스크 운영 (logrotate·cron)

섹션 7진행 0 / 13

5. 자주 하는 실수 (Tip)

❌ 실수 1: 열린 로그를 rm 으로 지운다

df 가 그대로이고 "지웠는데 안 줄어든다" 고 헤맵니다. ✅ : > 파일 로 비우거나 lsof +L1 로 찾아 /proc/PID/fd/N 을 비웁니다.

❌ 실수 2: 자바 stdout 로그에 copytruncate 없이 logrotate 를 건다

이름이 바뀐 옛 파일에 앱이 계속 쓰고 새 파일은 비어 있습니다. ✅ 프로세스가 열고 있는 로그는 copytruncate 를 씁니다.

❌ 실수 3: find -delete 를 확인 없이 실행한다

-name 패턴이 넓으면 설정 파일까지 지웁니다. ✅ 같은 조건으로 -print | head 를 먼저 보고, wc -l 로 개수를 확인한 뒤 -delete 를 붙입니다.

bash
find /opt/myapp -name '*.log' -mtime +30 -print | head    # 먼저 본다
find /opt/myapp -name '*.log' -mtime +30 -delete          # 그다음 지운다

❌ 실수 4: cron 에서 PATH 를 믿는다

터미널에선 되던 java, zip 이 cron 에선 없다고 나옵니다. ✅ 파일 상단에 PATH 를 적거나 명령을 절대 경로로 씁니다.

❌ 실수 5: cron 출력을 버리거나 메일로 보낸다

MAILTO 가 있으면 매일 메일이 쌓여 /var/spool/mail 이 찹니다. 버리면 실패를 모릅니다. ✅ >> 로그 2>&1 로 파일에 남기고 MAILTO="" 를 둡니다.

❌ 실수 6: -mtime +30 을 "30일" 로 이해한다

31일 이상만 걸립니다. 하루 차이가 정책과 어긋나면 감사에서 지적됩니다. ✅ 경계가 중요하면 -mtime +29 나 -mmin +43200 으로 맞춥니다.

❌ 실수 7: 힙 덤프를 지우지 않는다

HeapDumpOnOutOfMemoryError 로 남는 .hprof 는 힙 크기와 같아 하나가 수 GB 입니다. OOM 이 반복되면 며칠 만에 디스크가 찹니다. ✅ 분석 후 삭제하고 cron 으로 7일 지난 것을 지웁니다.

❌ 실수 8: logrotate 를 su 없이 root 로만 돌린다

로그 폴더가 앱 계정 소유이면 "insecure permissions" 경고로 백업을 건너뜁니다. ✅ 설정에 su myapp myapp 을 넣습니다.

❌ 실수 9: cron 명령에 % 를 그대로 쓴다

date +%F 의 % 가 줄바꿈으로 해석돼 명령이 잘립니다. ✅ \% 로 이스케이프하거나 스크립트 파일로 빼서 그 파일을 부릅니다.

❌ 실수 10: du 로 / 전체를 조건 없이 훑는다

/proc 과 NFS 마운트까지 들어가 몇십 분 걸리거나 멈춥니다. ✅ du -xh --max-depth=2 로 파티션 안에서 두 단계만 봅니다.