首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取日志轮转文件的名称?

获取日志轮转文件的名称?
EN

Unix & Linux用户
提问于 2020-12-01 15:43:41
回答 1查看 424关注 0票数 1

让我首先说我对linux和bash脚本非常陌生,我只在这里呆了两个星期,所以假设我什么都不知道!

出于开发的原因,我需要将日志文件复制到另一个位置和名称,下面是我的日志旋转文件:

代码语言:javascript
复制
/pub/share/logs/results.txt {
    daily
    rotate 30
    dateext
    compress
    delaycompress
    missingok
    notifempty
    postrotate
        sh /pub/share/scripts/result_rotate.sh $1 > /dev/null
    endscript
}

bash脚本很简单:

代码语言:javascript
复制
#!/bin/bash

date=$(date +%Y%m%d)
cp $1-$date /pub/share/reports/data.log

我不知道我是否需要把它放在一个脚本文件中,或者我是否可以在后置旋转块中输入这个文件,但是现在这是可行的。

它传递要旋转的文件的名称,但是在它已经用日期扩展名重命名之后才会这样做,因此上面的日期代码。这样做安全吗?有没有可能出现这样的情况:它可能无法正确匹配?

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2020-12-01 16:09:42

是的,为什么不呢?你可以直接用旋转后块写:

代码语言:javascript
复制
cp $1-$(date +%Y%m%d) /pub/share/reports/data.log >/dev/null

在更糟糕的情况下,日志轮转(例如,使用今天的日期和posted )在第二天的日期中运行,所以我们的cp命令将不会复制该文件。为此,您可以始终获得一天前的文件,而不是今天的日期旋转文件:

代码语言:javascript
复制
cp $1-$(date -d'-1day' +%Y%m%d) /pub/share/reports/data.log >/dev/null

当然,您也可以复制这两个文件,即今天的日期和昨天的日期文件。

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/622372

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档