로그·디스크 운영 (logrotate·cron)
6. 연습 문제
문제 1. 상위 5개 폴더
/var 아래에서 가장 큰 하위 폴더 5개를 크기순으로 보는 명령을 쓰세요.
du -xh --max-depth=1 /var 2>/dev/null | sort -rh | head -n 6head -n 6 인 이유는 첫 줄이 /var 합계이기 때문입니다. -x 로 다른 파티션을 제외합니다.
문제 2. 백업 설정 읽기
daily, rotate 7, compress, delaycompress 설정에서 8일째 아침에 폴더에 남는 파일을 설명하세요.
원본 1개, 어제 것은 압축 안 된 .1 1개, 그 이전 6개는 .gz 로 총 8개 정도입니다. delaycompress 때문에 가장 최근 백업본은 한 세대 뒤에 압축되고, rotate 7 을 넘는 가장 오래된 파일은 삭제됩니다.
문제 3. cron 표현식
매주 일요일 새벽 2시 30분에 /opt/myapp/bin/backup.sh 를 myapp 계정으로 실행하는 cron.d 줄을 쓰세요.
30 2 * * 0 myapp /opt/myapp/bin/backup.sh >> /opt/myapp/logs/backup.log 2>&1요일 칸의 0 이 일요일입니다. 출력을 파일로 남기는 부분까지가 한 줄입니다.
문제 4. 지웠는데 안 줄어든다
rm 으로 5GB 로그를 지웠는데 df 가 그대로입니다. 원인 확인과 공간 회수 명령을 쓰세요.
lsof +L1 | grep deleted
: > /proc/PID/fd/FD번호lsof 출력의 PID 와 FD 열을 그대로 씁니다. 앱 재시작 없이 공간이 돌아옵니다.
문제 5. 디스크 경고 스크립트
사용률이 85% 를 넘는 파티션만 출력하는 한 줄을 쓰세요.
df -h | awk 'NR>1 && $5+0 > 85 {print $6, $5}'$5+0 으로 92% 를 숫자 92 로 바꿔 비교합니다. 02 레슨의 awk 숫자 변환 관용구입니다.