리눅스 파일 시스템이 90% 이상 사용될 경우, 로그 파일을 삭제하는 자동화된 방법은 스크립트를 작성하고 크론(cron) 작업을 설정하는 것입니다. 아래는 이를 구현하는 방법에 대한 가이드입니다.
df 명령어를 사용하여 파일 시스템의 디스크 사용량을 확인할 수 있습니다.
df -h
결과는 다음과 같습니다:
Filesystem Size Used Avail Use% Mounted on /dev/sda1 50G 45G 5G 90% /
예를 들어 /var/log 디렉토리에서 오래된 로그를 삭제하도록 스크립트를 작성할 수 있습니다.
#!/bin/bash # 파일 시스템 경로와 임계값 설정 MOUNT_POINT="/" THRESHOLD=90 # 현재 사용량 가져오기 USAGE=$(df -h "$MOUNT_POINT" | awk 'NR==2 {print $5}' | sed 's/%//') # 임계값 초과 시 로그 삭제 if [ "$USAGE" -ge "$THRESHOLD" ]; then echo "$(date): 디스크 사용량 $USAGE% 초과, 로그 정리 시작" >> /var/log/disk_cleanup.log # 오래된 로그 삭제 (예: 7일 이상 된 파일) find /var/log -type f -mtime +7 -exec rm -f {} \; echo "$(date): 로그 정리 완료" >> /var/log/disk_cleanup.log fi
작성한 스크립트에 실행 권한을 부여합니다.
chmod +x /path/to/cleanup_logs.sh
정기적으로 스크립트를 실행하도록 크론 작업을 설정합니다.
crontab -e
다음 줄을 추가하여 매일 1시간 간격으로 스크립트를 실행합니다.
0 * * * * /path/to/cleanup_logs.sh
로그를 완전히 삭제하는 대신, 압축하여 저장하려면 gzip이나 tar 명령어를 사용할 수 있습니다. 예를 들어:
find /var/log -type f -mtime +7 -exec gzip {} \;
이 방법으로 디스크 사용량을 관리할 수 있습니다!