홈 › 리눅스 운영 › 06 / 13

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

섹션 7진행 0 / 13

6. 연습 문제

문제 1. 상위 5개 폴더

/var 아래에서 가장 큰 하위 폴더 5개를 크기순으로 보는 명령을 쓰세요.

bash
du -xh --max-depth=1 /var 2>/dev/null | sort -rh | head -n 6

head -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 줄을 쓰세요.

text
30 2 * * 0  myapp  /opt/myapp/bin/backup.sh >> /opt/myapp/logs/backup.log 2>&1

요일 칸의 0 이 일요일입니다. 출력을 파일로 남기는 부분까지가 한 줄입니다.

문제 4. 지웠는데 안 줄어든다

rm 으로 5GB 로그를 지웠는데 df 가 그대로입니다. 원인 확인과 공간 회수 명령을 쓰세요.

bash
lsof +L1 | grep deleted
: > /proc/PID/fd/FD번호

lsof 출력의 PID 와 FD 열을 그대로 씁니다. 앱 재시작 없이 공간이 돌아옵니다.

문제 5. 디스크 경고 스크립트

사용률이 85% 를 넘는 파티션만 출력하는 한 줄을 쓰세요.

bash
df -h | awk 'NR>1 && $5+0 > 85 {print $6, $5}'

$5+0 으로 92% 를 숫자 92 로 바꿔 비교합니다. 02 레슨의 awk 숫자 변환 관용구입니다.