需要使用shell脚本删除不同位置的日志

需要使用shell脚本删除不同位置的日志

需要从不同位置删除不同名称的日志,并且需要删除超过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

相关内容