AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 875235
Accepted
user35042
user35042
Asked: 2017-09-25 05:44:27 +0800 CST2017-09-25 05:44:27 +0800 CST 2017-09-25 05:44:27 +0800 CST

logrotate prerotate 脚本未获取要旋转的文件名

  • 772

我在使用 logrotate 3.12.2 中的 prerotate 脚本时遇到问题。我在本prerotate/endscript节中指定的脚本没有接收要旋转的文件的名称作为第一个参数 ( $1)。

这是 logrotate 配置:

compress
/external-logs/syslog {
  daily
  rotate 3
  olddir OLD
  missingok
  prerotate
    /root/filter-syslog.sh
  endscript
}

这里是/root/filter-syslog.sh:

#!/bin/sh 
echo "log file subject to prerotate: $1"

最后,这是 logrotate 运行的详细输出:

reading config file /external-config/logrotate.conf
olddir is now OLD
Reading state from file: /external-logs/logrotate.state
Allocating hash table for state file, size 64 entries
Creating new state

Handling 1 logs

rotating pattern: /external-logs/syslog  after 1 days (3 rotations)
olddir is OLD, empty log files are rotated, old logs are removed
considering log /external-logs/syslog
  Now: 2017-09-24 13:35
  Last rotated at 2017-09-23 12:50
  log needs rotating
rotating log /external-logs/syslog, log->rotateCount is 3
dateext suffix '-20170924'
glob pattern '-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
renaming /external-logs/OLD/syslog.3.gz to /external-logs/OLD/syslog.4.gz (rotatecount 3, logstart 1, i 3), 
old log /external-logs/OLD/syslog.3.gz does not exist
renaming /external-logs/OLD/syslog.2.gz to /external-logs/OLD/syslog.3.gz (rotatecount 3, logstart 1, i 2), 
old log /external-logs/OLD/syslog.2.gz does not exist
renaming /external-logs/OLD/syslog.1.gz to /external-logs/OLD/syslog.2.gz (rotatecount 3, logstart 1, i 1), 
old log /external-logs/OLD/syslog.1.gz does not exist
renaming /external-logs/OLD/syslog.0.gz to /external-logs/OLD/syslog.1.gz (rotatecount 3, logstart 1, i 0), 
old log /external-logs/OLD/syslog.0.gz does not exist
log /external-logs/OLD/syslog.4.gz doesn't exist -- won't try to dispose of it
running prerotate script
log file subject to prerotate: 
renaming /external-logs/syslog to /external-logs/OLD/syslog.1
compressing log with: /bin/gzip

注意log file subject to prerotate:上面输出中的“”行。为什么行输出log file subject to prerotate: /external-logs/syslog不是“”?

logrotate
  • 1 1 个回答
  • 8695 Views

1 个回答

  • Voted
  1. Best Answer
    Thomas
    2017-09-25T06:11:21+08:002017-09-25T06:11:21+08:00

    您没有将任何内容传递给您的 shell 脚本。所以$1in your/root/filter-syslog.sh没有任何价值,因此没有打印任何内容。

    echo "log file subject to prerotate: $1"
    

    要使其工作,您必须通过$1或$@在您的 logrotate 配置中。

    compress
    /external-logs/syslog {
      daily
      rotate 9
      olddir OLD
      missingok
      prerotate
        /root/filter-syslog.sh $1
      endscript
    }
    
    • 5

相关问题

  • logrotate 用日期重命名文件

  • Web 服务器日志归档的最佳实践(Linux + Nginx)

  • Apache 访问日志轮换

  • Cronolog vs logrotate

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve