gpt4 book ai didi

bash - 轮换时如何在我的脚本中获取日志?

转载 作者:行者123 更新时间:2023-11-29 09:49:00 24 4
gpt4 key购买 nike

我有一个脚本,用于从 tomcat 获取日志并将其发送到我的云资源中。一切正常,但当我的 tomcat 轮换日志时我遇到了问题。

当日志轮换时,它会以日期为前缀(日志每天轮换)。由于我的脚本每半小时运行一次,因此当它轮换时我可能会错过日志,因为我正在使用静态名称获取日志,在示例中为 logfile.log

在旋转之前,文件将如下所示:

logfile.log

旋转后,它看起来像这样:

logfile.log.2012-10-09

有什么方法可以解决这个问题吗?

编辑:

我的脚本:

cp /tomcat/logs/$logname $fileName 
gzip $fileName
s3cmd put $fileName.gz s3://x.x.x.x.x/$folderName

提前致谢。

最佳答案

我认为备份日志的最佳方法是根据日志文件的 mtime 进行检查。

您可以将上次备份的日志文件 mtime 保存在某个地方,然后检查轮换日志文件和当前日志文件。如果有一个比上次存储的 mtime 更新的旋转日志文件,您可以将当前日志文件附加到旋转的日志文件,然后备份。如果只有当前日志文件较新,则只备份它。

文件的 mtime 可以通过以下方式检索:LC_ALL=C stat logfile.log | grep '^修改' | cut -d: -f2-,或者 unix 时间戳 date "+%s"--date="$(LC_ALL=C stat logfile.log | grep '^Modify' | cut -d : -f2-)"

关于bash - 轮换时如何在我的脚本中获取日志?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12859921/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com