【问题标题】:Logrotate Postrotate aws s3 WildcardsLogrotate Postrotate aws s3 通配符
【发布时间】:2020-08-06 00:07:41
【问题描述】:

我正在尝试使用 postrotate 命令轮换一堆日志文件并将它们上传到 S3。 但是,postrotate 脚本似乎没有扩展 * glob 通配符:

我的 logrotate 配置:

/var/log/application/*.log {
 missingok
  dateext
  size 500M
  notifempty
  copytruncate
  compress
  rotate 1512
  postrotate
     /usr/bin/aws s3 mv /var/log/application/*.gz  s3://mygreatbucket/
  endscript
}

我在使用该配置运行 logrotate 时看到的错误:

The user-provided path /var/log/application/*.gz does not exist.

这是来自 aws cli s3 命​​令的消息。如果我手动运行我的命令,我可以复制它:

/usr/bin/aws s3 mv '/var/log/application/*.gz'  s3://mygreatbucket

(注意单引号)。

如何才能在 postrotate 步骤中扩展 glob 通配符?

【问题讨论】:

    标签: amazon-web-services amazon-s3 sh logrotate


    【解决方案1】:

    AWS cli 文档指出他们的 CLI 工具确实直接支持 glob 通配符。相反,您应该使用 --include 或 --exclude 参数。

    我最终使用了:

    /usr/bin/aws s3 mv /var/log/application/ s3://mybucket --exclude '*' --include '*.gz' --recursive

    --recursive 标志很重要,否则将不起作用。

    【讨论】:

      猜你喜欢
      • 2018-02-13
      • 1970-01-01
      • 2011-11-08
      • 2019-08-31
      • 2021-11-18
      • 1970-01-01
      • 2015-09-01
      • 2015-02-21
      • 1970-01-01
      相关资源
      最近更新 更多