nginx分割日志
程序员文章站
2022-12-22 08:29:53
实现nginx日志按照时间分割存储 backups_log.sh 将sh脚本加入到定时任务中,每天23:59执行 添加定时任务 注意事项: 1.在没有执行kill -USR1 nginx_pid 之前,即便已经对文件执行了mv命令也只是改变了文件的名称,nginx还是会向新命名的文件中照常写入日志数 ......
实现nginx日志按照时间分割存储
backups_log.sh
#设置log日志的存储地址 log_path=/home/soft/nginx/logs #设置历史日志的存储地址 history_log_path=/home/soft/nginx/history_logs #获取分割日志时所需要的时间当做日志文件名称 time=$(date +%y-%m-%d) #将当前日志备份到指定存储目录 mv ${log_path}/access.log ${history_log_path}/access_log/${time}_access.log #发送信号重新打开日志文件 kill -usr1 $(cat ${log_path}/nginx.pid)
将sh脚本加入到定时任务中,每天23:59执行
crontab -e
添加定时任务
59 23 * * * /home/sh/backups_log.sh
注意事项:
1.在没有执行kill -usr1 nginx_pid 之前,即便已经对文件执行了mv命令也只是改变了文件的名称,nginx还是会向新命名的文件中照常写入日志数据。原因在于linux系统中,内核是根据文件描述符来找文件的
2.添加定时任务后如果定时任务没有起作用,则使用 ps -aux | grep cron 确认下服务是否已经开启
3. -usr1 是进程间通信的信号中的一种,至于nginx进程接收到该信号做什么操作是它内部定义的,除此之外我们可以使用 kill -l 确认liunx中包含哪些信号