我一直在尝试使用 logrotate 实用程序并将压缩日志移动到 s3,但是,它仅在强制完成时才会旋转

Posted

技术标签:

【中文标题】我一直在尝试使用 logrotate 实用程序并将压缩日志移动到 s3,但是,它仅在强制完成时才会旋转【英文标题】:I've been trying to use logrotate utility and move the compressed logs to s3, however, it rotates only when done forcefully 【发布时间】:2019-08-13 04:17:16 【问题描述】:

我已将其配置为每小时运行一次,它每小时轮换一次日志但不将其发送到 s3,这可能是什么原因?

/var/log/newlog

rotate 5
hourly
missingok
notifempty
compress
dateext
    dateformat -%Y-%m-%d-%H%M%S
postrotate
    /usr/lib/newlog/new
endscript

/usr/lib/newlog/new是一个脚本,使用s3cmd将.gz文件同步到s3

【问题讨论】:

【参考方案1】:

从上面的代码可以看出,没有提到应该将日志文件压缩到的 S3 存储桶。 您的脚本应添加以下行:


/var/log/newlog

   postrotate
    /usr/lib/newlog/new > /dev/null 2>&1 || true

    BUCKET=logging-bucket
    INSTANCE_ID=`curl --silent http://169.254.169.254/latest/meta-data/instance-id | sed -e "s/i-//"`
    /usr/bin/s3cmd -m text/plain sync /var/log/messages-* s3://$BUCKET/$INSTANCE_ID/var/log/

endscript


其中 logging-bucket 是存储压缩文件的存储桶的名称。 还要确保用户对 S3 具有权限。

谢谢

【讨论】:

以上是关于我一直在尝试使用 logrotate 实用程序并将压缩日志移动到 s3,但是,它仅在强制完成时才会旋转的主要内容,如果未能解决你的问题,请参考以下文章

旋转异常日志的logrotate问题

带有 xlsx ( Excel ) 文件的 sql bcp 实用程序

logrotate 不旋转 catalina.out

您如何在 Heroku 上运行实用程序服务?

我一直在尝试打孔并将数据报发送到路由器后面的朋友计算机,但没有任何反应

python WatchedFileHandler 在旋转后仍然写入旧文件