Docker   发布时间:2019-11-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了滚动 docker 中的 nginx 日志大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

title="滚动 docker 中的 nginx 日志" alt="滚动 docker 中的 nginx 日志" src="https://cn.js-code.com/res/2019/02-09/09/92f4eb1dfcc88c8682948ca28e9fb341.png" >

Ting Log-filesenamed first. After that USR1 signal should be sent to the master process. The master process will then re-open all currently open log files and assign them an unprivileged user under which the worker processes are running,as an owner. After successful re-opening,the master process closes all open files and sends the message to worker process to ask them to re-open files. Worker processes also open new files and close old files right away. As a result,old files are almost immediately available for post processing,such as compression.

你的系统中已经安装好了 docker,这里我们直接运行一个 nginx 容器:

$ docker run --p :-v $()/logs/nginx:/var/log/--restart=--name=.

#!/bin/<span style="color: #0000ff">for ((i=<span style="color: #800080">1;i<=<span style="color: #800080">100000;i++<span style="color: #000000">))
<span style="color: #0000ff">do<span style="color: #000000">
curl http:<span style="color: #008000">//<span style="color: #008000">localhost > /dev/null
<span style="color: #0000ff">sleep <span style="color: #800080">1
<span style="color: #0000ff">done

#!/bin/getdateString()
{
TZ
=<span style="color: #800000">'<span style="color: #800000">Asia/Chongqing<span style="color: #800000">' <span style="color: #0000ff">date <span style="color: #800000">"<span style="color: #800000">+%Y%m%d%H%M<span style="color: #800000">"<span style="color: #000000">
}
dateString=<span style="color: #000000">$(getdateString)

<span style="color: #0000ff">mv /var/log/nginx/access.log /var/log/nginx/<span style="color: #000000">access.${dateString}.log
<span style="color: #0000ff">mv /var/log/nginx/error.log /var/log/nginx/<span style="color: #000000">error.${dateString}.log
<span style="color: #0000ff">kill -USR1 <span style="color: #0000ff"&gt;cat</span> /var/run/nginx.pid

String 函数取当前的时间并格式化为字符串,比如 "201807241310",笔者比较喜欢用日期和时间来命名文件。注意这里通过 TZ='Asia/Chongqing' 指定了时区,因为默认情况下格式化的是 UTC 时间,用起来怪怪的(要实时脑补 +8 小时)。命令为 rotatelog.sh 文件添加可执行权限并复制到 $(pwd)/logs/nginx 目录下:

$ +x rotatelog. rotatelog. $()/logs/nginx

所以需要在容器中给 nginx master 进程发送 USR1 信号。因此我们需要通过 docker exec 命令在 mynginx 容器中执行 rotatelog.sh 脚本:

$ docker exec mynginx bash /var/log/nginx/rotatelog.

title="滚动 docker 中的 nginx 日志" alt="滚动 docker 中的 nginx 日志" src="https://cn.js-code.com/res/2019/02-09/09/b7f3bab14375ac899568cb398e08a5dd.png" >

* * * * docker exec mynginx bash /var/log/nginx/rotatelog.

title="滚动 docker 中的 nginx 日志" alt="滚动 docker 中的 nginx 日志" src="https://cn.js-code.com/res/2019/02-09/09/3f394224b70a1a4696f324214535c651.png" >

title="滚动 docker 中的 nginx 日志" alt="滚动 docker 中的 nginx 日志" src="https://cn.js-code.com/res/2019/02-09/09/63f5e64eef4373f421db6f87f657a1e4.png" >

title="滚动 docker 中的 nginx 日志" alt="滚动 docker 中的 nginx 日志" src="https://cn.js-code.com/res/2019/02-09/09/cae729c9f3f17dcc031a465f854eab5c.png" >

》一文中介绍了容器中信号的捕获问题,感兴趣的朋友可以去看看。在那篇文章中我们介绍了 docker 向容器中进程发送信号的 kill 命令。我们可以通过命令:

$ docker container mynginx -s USR1

滚动 docker 中的 nginx 日志

大佬总结

以上是大佬教程为你收集整理的滚动 docker 中的 nginx 日志全部内容,希望文章能够帮你解决滚动 docker 中的 nginx 日志所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: