日志文件翻转

时间:2013-06-21 09:57:09

标签: shell

我有一个自定义脚本正在运行,我想将输出和脚本的几个执行阶段重定向到日志文件。

我的要求是 - 当日志文件超过20 MB的大小时,我会将内容移动到一个新文件,我的脚本会重新创建日志文件。在任何时候,我都会备份最近的日志内容。我试图提出以下逻辑:

if [  -e "$logfile" ]

then

    logsize=ls -l $logfile |awk '{print $5}'

    ls -l $logfile |awk '{print $5}'

    if [ "$logsize" -gt 2097152 ]

    then

        mv $logfile $(date +"%Y%m%d%H%M").log

        touch $logfile

    fi

else

    touch $logfile

fi

我想得到专家的想法,如果有任何其他有效的方法来完成这项任务,请告诉我。

1 个答案:

答案 0 :(得分:1)

我认为您应该使用logrotate命令或构建自定义脚本。

读一读guide

您的要求的示例配置如下:

/var/log/logfile {
   missingok
   size 20M       
   rotate 5

}