디스크 공간이 90%에 도달하면 로그를 삭제하는 쉘 스크립트

디스크 공간이 90%에 도달하면 로그를 삭제하는 쉘 스크립트

디스크 공간이 90%에 도달하면 자동으로 로그를 삭제하는 쉘 스크립트를 개발했습니다.

이 쉘 스크립트를 crontab 작업에 추가할 수 있습니다.

답변1

스크립트를 작성하는 데 시간을 소비하는 대신 파일을 압축하고 오래된 로그를 적게 유지하는 것이 더 좋지 않습니까?이것이 logrotate가 존재하는 이유입니다.

다음 logrotate.conf과 같이 시작해야 합니다.

# see "man logrotate" for details
# rotate log files weekly
weekly

# keep 4 weeks worth of backlogs
rotate 4

# create new (empty) log files after rotating old ones
create

# uncomment this if you want your log files compressed
compress

# packages drop log rotation information into this directory
include /etc/logrotate.d

예를 들어 옵션 의 주석 처리를 해제 compress하고 3으로 변경하여 rotate디스크 공간에 맞는지 확인합니다. 또한 회사의 요구 사항을 충족해야 합니다. 법적인 이유로 로그인 정보를 18개월 동안 보관해야 하는 서버가 있으므로 로그인 파일을 매월 교체하도록 변경했습니다.

/var/log/wtmp {
    monthly
    minsize 1M
    create 0664 root utmp
    rotate 18
}

/var/log/btmp {
    missingok
    monthly
    minsize 1M
    create 0600 root utmp
    rotate 18
}

파일이나 디렉터리를 가리키고 중괄호 사이에 매개변수를 넣으면 특정 회전 규칙을 만들 수 있습니다.

권한 있는 사용자가 아니신가요?. 루트 없이 실행되도록 구성할 수 있으므로 cron이는 전혀 문제가 되지 않습니다 .logrotate

관련 정보