linux系统上nginx配置按天生成日志文件

摘要:
Nginx日志默认写入文件,不便于管理,文件容量会越来越大。因此,为了方便日志的管理和分析,日志每天都会被剪切,也就是说,每天都会生成一个新的日志文件。输入以下内容:vimpart_log。shD=$LOGS_PATH=/usr/local/nginx/logsmv${LOGS_PATH}/access.log${LOGS_PATH}/${D}。Logkill USR1$描述:定义一个D变量,并将当前系统时间分配给D,以定义变量LOGS_ path用于存储日志的路径。使用mv命令重命名访问。时间格式的日志日志文件。这样,nginx将生成一个新的访问日志文件kill USR1 Switch日志文件。编辑脚本后,根据步骤4将其添加到计时器中。

nginx日志默认把日志都写到一个文件中,这样不方便管理,而且文件容量会越来越大,所以为了方便管理分析日志把日志按天切割,即每天生成一个新的日志文件。

实现步骤

1. 找到nginx日志文件
我的文件在/usr/local/nginx/logs这个路径下,有个access.log文件就是nginx的日志文件

2. 进入该路径创建个sh文件(称为批处理日志文件)
touch part_log.sh(文件名自定义,后缀.sh即可)

3. 编辑part_log.sh文件。输入如下内容:
  vim part_log.sh

D=$(date +%Y-%m-%d)
LOGS_PATH=/usr/local/nginx/logs
mv ${LOGS_PATH}/access.log ${LOGS_PATH}/${D}.log
kill -USR1 $(cat/usr/local/nginx/logs/nginx.pid)

说明:

  • 定义一个D变量并把当前系统时间赋值给D
  • 定义一个变量LOGS_PATH用来存放日志的路径
  • 使用mv命令把access.log日志文件, 以时间格式重命名。 这样nginx又会生成一个新的access.log文件
  • kill -USR1 切换日志文件。语法:kill -USR1 主进程号

linux系统上nginx配置按天生成日志文件第1张

4. 设置好脚本使用定时器每天23:59跑一次就好了
编辑定时器
crontab -e
输入如下内容
59 23 * * * sh /usr/local/nginx/logs/cutlog.sh > /data/bak.log 2>&1
查看定时器内容
crontab -l

crontab时间格式内容

*    *    *    *    *    command
M    H    D    m    d    command
分   时   日   月   周   命令
第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令或脚本内容  

5. 定时删除以前的日志
每天生成一个日志文件时间久了会产生很多文件,所以需要定期的清理一下旧的文件,
创建clear.sh文件,输入如下命令

说明:

  • find:查找,liunx内置命令

  • /data/server/nginx/logs/:日志所在目录;

  • -mtime:标准语句写法;

  • +10:查找10天前的文件,这里用数字代表天数;

  • "*.log":log文件;

  • -exec:固定写法;

  • rm -rf:强制删除文件,包括目录;

  • {} ; :固定写法

连起来的意思就是,查找指定目录下10天前的*.log文件,然后删掉。

编辑好脚本后按照第四步加入到定时器中就好了。

免责声明:文章转载自《linux系统上nginx配置按天生成日志文件》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Laravel之队列Hibernate中批量保存数据下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Linux客户端终端(命令行)访问samba

Linux客户端要连接samba/windows文件服务器时,需使用smbmount或mount指令:  smbmount //sambaserver/d /mnt/d -o username=aaa,password=bbb  smbmount //sambaserver/d /mnt/d -o username=aaa%bbb  mount -t sm...

linux fstab下挂载错误导致cannot open access to console, the root account is locked的问题

用 deepin 安装 u 盘启动,出现选择安装语言的界面时,按 ctrl+alt+T,进入 tty,然后输入 startx,进入 live cd 模式,挂载硬盘的根分区,然后修改 /etc/fstab 文件,把里面的 /home 分区里的启动项注释掉。mount 命令在开始时会读取这个文件,确定设备和分区的挂载选项,注释掉后开机就不会挂载 /home...

Monkey测试结果分析

一. 初步分析方法   Monkey测试出现错误后,一般的差错步骤为以下几步:   1、 找到是monkey里面的哪个地方出错   2、 查看Monkey里面出错前的一些事件动作,并手动执行该动作   3、 若以上步骤还不能找出,可以使用之前执行的monkey命令再执行一遍,注意seed值要一样   一般的测试结果分析:   1、 ANR问题:在日志中搜...

linux应用之bugfree的安装及配置

Bugfree3.0.4 Linux环境安装指南                           bugfree系统安装的前提是,配置LAMP环境(apache+mysql+php),下面以centos6.3系统为例介绍bugfree3.0.4的安装步骤。 一、    安装apache服务器 检查apache服务器是否安装 #service httpd...

linux应用之nginx的源码安装及配置(centos)

1、准备工作选首先安装这几个软件:GCC,PCRE(Perl Compatible Regular Expression),zlib,OpenSSL。Nginx是C写的,需要用GCC编译;Nginx的Rewrite和HTTP模块会用到PCRE;Nginx中的Gzip用到zlib;用命令“# gcc”,查看gcc是否安装;如果出现“gcc: no input...

squid 访问日志记录

squid日志记录在squid.conf 也可记录。并且squid日志可以不记录静态项 在squid.conf 加入 (1)access_log /var/log/squid/access.log  squid        #定义日志存放记录 (2)不记录静态加入 acl nolog urlpath_regex -i .css .js .swf .jpg...