我一直在尝试使用 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,但是,它仅在强制完成时才会旋转的主要内容,如果未能解决你的问题,请参考以下文章
带有 xlsx ( Excel ) 文件的 sql bcp 实用程序