다른 위치의 로그를 삭제하려면 쉘 스크립트를 사용해야 합니다.

다른 위치의 로그를 삭제하려면 쉘 스크립트를 사용해야 합니다.

이름이 다른 로그는 다른 위치에서 삭제해야 하며, 5일보다 오래된 로그는 삭제해야 합니다.

전임자:

/abc/bcd/fgh/log/log1.txt
/abc/bcd/fgh/test/log2.log
/test/urc/mhg/event.log
/hjy/jghd/qwer/nbcvd/eda.log

답변1

너는 좀 봐야 해로그 회전이러한 작업을 자동화하도록 설계되었습니다. 구성 파일을 생성하고 로그의 위치와 처리 방법을 알려주면 로그를 예약하고 회전/삭제합니다.

답변2

이 스크립트를 crontab에 추가하세요

 #!/bin/bash

LogArray=()
LogArray+=('/abc/bcd/fgh/log/log1.txt')
LogArray+=('/abc/bcd/fgh/test/log2.log')
LogArray+=('/test/urc/mhg/event.log')
LogArray+=('/hjy/jghd/qwer/nbcvd/eda.log')

    for (( i=${#LogArray[@]}-1; i>=0; i-- )); do
        if test `find ${LogArray[$i]} -ctime +5`
            then
                truncate -s 0 ${LogArray[$i]}
                chmod ""$(stat -c %a ${LogArray[$i]})"" ${LogArray[$i]}
        fi
    done

    exit 0

관련 정보