实施日志轮换的最佳方法是什么? (节点应用程序)

时间:2019-07-13 15:19:58

标签: bash forever log-rotation

随着文件大小的不断增加,我需要轮换由节点进程创建的日志文件。应用程序在AWS ec2实例上的ubuntu中运行。

我运行的永久节点进程很少,它将日志写入以下文件。

forever.log
stderr.log
stdout.log

我的CloudWatch代理还查看这些文件,并将日志推送到cloudwatch,节点应用程序也不断将日志写入这些文件中。

我需要找到轮换这些日志文件并清理较旧文件的最佳方法,而又不影响上述任何过程。

不确定以下方法会导致麻烦,因为它将移动文件并创建新文件

#!/bin/bash 
touch /script_logs/test.log
MaxFileSize=2048
while true
do
     sh test.sh >> /script_logs/test.log
#Get size in bytes** 
    file_size=`du -b /script_logs/test.log | tr -s '\t' ' ' | cut -d' ' -f1`
    if [ $file_size -gt $MaxFileSize ];then   
        timestamp=`date +%s`
        mv /script_logs/test.log /script_logs/test.log.$timestamp
        touch /script_logs/test.log
    fi

done

需要实现日志轮转机制,而又不影响读取日志文件的Cloudwatch代理或写入日志的应用程序

0 个答案:

没有答案