0
点赞
收藏
分享

微信扫一扫

NGINX的信号量及应用日志文件切割

一、NGINX的信号量

  1、官网信号量链接地址

  ​​https://www.nginx.com/resources/wiki/start/topics/tutorials/commandline/​​

  2、NGINX的进程说明

  一般在nginx启动之后会有一个 master process(主进程)和多个worker process(工作进程)

  • 主进程不参与处理用户发来的请求,而是来管理和控制工作进程的,当一个工作进程响应完毕后,主进程会调度工作进程处理下一个请求
  • 工作进程是处理用户发来的请求的进程。

  3、信号量说明

名称

功能说明

TERM, INT

Quick shutdown   (强制关闭)

QUIT

Graceful shutdown  (优雅关闭,会在请求处理完成之后,自动关闭)

KILL

Halts a stubborn process

HUP

Configuration reload      (优雅的重新加载配置文件,如果修改完配置文件,需要重启的话,可以使用这个信号量,使用该信号量重启并不会关闭进程和中断请求)

Start the new worker processes with a new configuration

Gracefully shutdown the old worker processes

USR1

Reopen the log files   (重写一个日志文件)

USR2

Upgrade Executable on the fly   (升级执行文件)

WINCH

Gracefully shutdown the worker processes  (优雅的关闭工作进程)

  4、信号量的使用

kill -信号量  nginx的主进程的pid

例如:

kill -HUP 4623

  优雅的加载配置文件

二、NGINX的日志切割实现

  使用信号量 USR1 Reopen the log files   (重写一个日志文件)

#!/usr/bin/env bash
fDate=$(date -d "1 day ago" +%Y-%m-%d)
Files=`ls /data/log/nginx/ |grep .log$`
mkdir -p /data/tmplog/{{ ansible_hostname }}-"$fDate"

for i in $Files
do
cd /data/log/nginx/
mv $i /data/tmplog/{{ ansible_hostname }}-"$fDate"/$i
done

chmod 775 -R /data/log/nginx/
[ -f /var/run/{{ ansible_hostname }}.pid ] && kill -USR1 `cat /var/run/{{ ansible_hostname }}.pid`

cd /data/tmplog/
tar fzcv {{ ansible_nodename }}."$fDate".tar.gz {{ ansible_hostname }}-"$fDate"
rsync {{ ansible_nodename }}."$fDate".tar.gz root@bak.ops.com::logbacknginx
sudo find /data/tmplog/ -mtime +3 -name '*' -exec rm

 



举报

相关推荐

0 条评论