linux - Log-rotate 压缩后删除原文件

标签 linux logrotate log-rotation

我的 someDir 中有以下文件:

blacklistadm.out00009 blacklistadm.out00008 blacklistadm.out00007 blacklistadm.out00010 blacklistadm.out00025

我在/etc/logrotate.d/中有以下日志轮换模式:

someDir/blacklistadm.out*[0-9]{
    weekly
    missingok
    compress
        sharedscripts
        postrotate
                rm -f someDir/blacklistadm.out*[0-9]
        endscript
}

运行日志循环脚本时,它会以某种方式删除 someDir 中的所有文件。我想要的是 .gz 所有文件,压缩后删除原始文件。我不想删除 .gz 文件。

最佳答案

文件正在被删除,因为您的 globbing 使用不当。

blacklistadm.out*[0-9]

字面上扩展为以“blacklistadm.out”开头的任何文件,后跟任何 0 个或多个字符的序列,以 0-9 定义范围内的单个字符结尾。

这显然是对所有内容的通配,因为您的所有文件都以“blacklistadm.out”开头并以数字结尾,因此当您使用相同的通配符运行 postrotate 脚本时,您将匹配该目录中的所有内容并将其删除。

关于linux - Log-rotate 压缩后删除原文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52041656/

相关文章:

c - 在 Linux 和 MacOS 上交换鼠标按钮

python - 捕获在 python 中运行的 bash 代码的输出

docker - 从 pod 内部访问 Kubernetes pod 的日志文件?

linux - U-boot管道命令输出

linux - 检查SSH连接和调用函数,执行命令

logging - 将其他日志轮换到 Amazon S3

CentOS 中的 Logrotate,maxsize 选项

linux - 包含日志文件的 logrotate 目录

linux - 如何在 Linux 中创建 logrotate

linux - 如何仅根据文件大小进行 logrotate?