Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 当脚本被旋转时,如何获取脚本中的日志?_Bash_Shell_Tomcat_Ubuntu_Log Rotation - Fatal编程技术网

Bash 当脚本被旋转时,如何获取脚本中的日志?

Bash 当脚本被旋转时,如何获取脚本中的日志?,bash,shell,tomcat,ubuntu,log-rotation,Bash,Shell,Tomcat,Ubuntu,Log Rotation,我有一个脚本,从tomcat获取日志并将其发送到my cloud资源。一切都很好,但当我的tomcat旋转日志时,我遇到了一个问题 当日志旋转时,其前缀为日期日志每天旋转。因为我的脚本每半小时运行一次,所以当它旋转时,我可能会错过日志,因为在示例logfile.log中,我使用静态名称获取日志 旋转前,文件将如下所示: logfile.log logfile.log.2012-10-09 旋转后,它将如下所示: logfile.log logfile.log.2012-10-09 有没有

我有一个脚本,从tomcat获取日志并将其发送到my cloud资源。一切都很好,但当我的tomcat旋转日志时,我遇到了一个问题

当日志旋转时,其前缀为日期日志每天旋转。因为我的脚本每半小时运行一次,所以当它旋转时,我可能会错过日志,因为在示例logfile.log中,我使用静态名称获取日志

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

logfile.log
logfile.log.2012-10-09
旋转后,它将如下所示:

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可以通过以下方式检索:LC_ALL=C stat logfile.log | grep'^Modify'| cut-d:-f2-,或者unix时间戳by date+%s-date=$LC_ALL=C stat logfile.log | grep'^Modify'| cut-d:-f2-

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

您可以将上次备份的日志文件mtime保留在某个位置,然后检查旋转的日志文件和当前日志文件。如果存在比上次存储的mtime更新的已旋转日志文件,则可以将当前日志文件附加到已旋转的日志文件,然后进行备份。如果只有当前日志文件较新,则只需备份它即可


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

您应该提供有关脚本和日志文件命名约定的更多详细信息。我们可以看到您的脚本吗?为什么不迭代所有名为logfile.log*的文件?@NiklasHansson:这有一个问题,将有许多logfile.log.*。我的意思是logfile.log。之前的_日期也包括在内,这不是我要找的。@TechliveZheng:它将保持不变。@GroovyUser如果没有脚本的摘录,我将无法帮助您。您不能提供关键部分?您应该提供有关脚本和日志文件命名约定的更多详细信息。我们可以查看您的脚本吗?为什么不迭代所有名为logfile.log*的文件?@NiklasHansson:这有一个问题,将有许多logfile.log.*。我的意思是logfile.log。之前的_日期也包括在内,这不是我要找的。@TechliveZheng:它将保持不变。@GroovyUser如果没有脚本的摘录,我将无法帮助您。你不能提供关键部件吗?