我的 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/