我们的应用程序服务器(tomcat)创建了catalina.log,我们需要编写一个cron作业(bash脚本)来运行每小时并使用时间戳旋转日志文件。
目前我们正在以下列方式这样做。
我们遇到的问题是,如果在此过程中写入catalina.out的任何内容,在清空catalina.out期间就会丢失。 无论如何都要克服这个问题吗?
提前致谢 Mayuran
答案 0 :(得分:1)
虽然您应该使用logrotate命令来管理日志轮换,但该建议并不能直接回答您的问题。
我发现你遇到了两个问题。首先你说:
- 将catalina.out复制到catalina.out。
醇>
这似乎不正确。也许这是一个错字?为什么要将文件复制到自身?
其次,你不应该复制这些(可能很大的)文件。您需要做的就是重命名它们。所以,一个穷人的日志轮换(再次,你应该使用logrotate)将是这样的:
FILE=catalina.out
TIME=`date -u +%s`
if [ -e $FILE ] ; then
mv ${FILE} ${FILE}.${TIME} && touch ${FILE}
else
touch ${FILE}
fi
这当然会最终用catalina.out。*文件填满你的磁盘。您需要增强脚本来处理它,或者只使用logrotate。