首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >日志轮转值

日志轮转值
EN

Stack Overflow用户
提问于 2018-06-13 21:29:55
回答 1查看 403关注 0票数 0

假设我有一个logrotate文件,如下所示:

代码语言:javascript
复制
"/data/logs/*.log" {
  daily
  rotate 5
  compress
  missingok
  notifempty
  prerotate
    echo "file name is: <file_name>"
  endscript
}

prerotate中,我想执行一个命令,其中我需要知道通配符的值。为了解决这个问题,假设我的命令非常简单,只是通配符值的echo

在不为通配符的每个可能值创建单独的配置定义的情况下,我如何做到这一点?有办法指向通配符的值吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-13 21:36:53

要为每个文件而不是只为整个组运行一次prerotate,您需要添加nosharedscripts选项。然后将文件的名称作为第一个参数传递给脚本,因此如果您有一个类似于

代码语言:javascript
复制
#!/usr/bin/env bash
echo "$1"

那么您应该能够使用以下内容:

代码语言:javascript
复制
"/data/logs/*.log" {
  daily
  rotate 5
  compress
  missingok
  notifempty
  nosharedscripts
  prerotate
    /path/to/your/script
  endscript
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50846562

复制
相关文章

相似问题

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