首页
学习
活动
专区
圈层
工具
发布

Linux nginx日志按天分割实例

nginx的日志有个小缺点,日志文件一直就是一个,不会自动地进行切割,如果访问量很大的话,将导致日志文件非常大,不便于管理 这就需要我们自己来实现了,按日期每天生产一个日志文件 思路 每天零点把默认日志文件改名为当天日期...,再重新打开新的日志文件 使用定时任务来执行脚本,脚本中执行改名和重新打开日志文件的操作 向Nginx主进程发送 USR1 信号,就可以重新打开日志文件 实现 #/bin/bash #备份日志的路径...bakpath='/home/nginx/logs' #nginx日志路径 logpath='/usr/local/nginx/logs' #在备份路径下创建年月子目录 mkdir -p $bakpath.../$(date +%Y)/$(date +%m) #移动日志文件到备份路径,并改名为日期格式 mv $logpath/access.log $bakpath/$(date +%Y)/$(date +%...$(date +%Y%m%d).log #用 USR1 信号让nginx重新打开日志文件 kill -USR1 `cat /usr/local/nginx/logs/nginx.pid`

3K50

【Linux】简易日志工具项目

1.3 为什么要构建自己的日志工具 从学习的角度出发,开发一个自己的简易日志工具可以带来以下好处: 深入理解日志原理: 通过自己实现日志工具,可以更深入地理解日志记录的基本原理,包括日志的格式化、写入...模块化和抽象思维: 日志工具的开发需要良好的模块化和抽象思维能力,这有助于在未来的项目中更好地组织代码。...理解日志在系统中的作用: 通过实现日志工具,可以更深刻地理解日志在系统监控、问题排查、性能分析等方面的重要性。...增强项目经验: 开发日志工具可以作为一个独立的项目经验,有助于在简历上展示实际编程能力和解决问题的能力。 总之,开发一个自己的简易日志工具是一个综合性的学习过程,下面我们来开发一个自己的日志工具!...2.3 线程安全优化 单线程的情况,我们的日志工具肯定是没有问题的!如果是多线程呢?

68810
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    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...sh/backups_log.sh 注意事项: 1.在没有执行kill -USR1 nginx_pid 之前,即便已经对文件执行了mv命令也只是改变了文件的名称,nginx还是会向新命名的文件中照常写入日志数据...原因在于linux系统中,内核是根据文件描述符来找文件的 2.添加定时任务后如果定时任务没有起作用,则使用 ps -aux | grep cron 确认下服务是否已经开启 3.

    1.1K20

    Linux创建定时任务,每天分割tomcat日志

    前言 tomcat日常运行会产生很多日志,系统运行时的日志主要集中在catalina.out文件中,随着日志的积累,该文件会越积越多,不利于后期日志查询,也不好全删文件。...而使用日志分割,可以按照时间查询每天的日志,当Liunx硬盘容量不够时,可以删除时间更久的日志,同时也能保留近期的日志。...思路 首先写一个sh脚本将catalina.out文件内容复制到一个新的日志文件中,复制完以后将catalina.out清空。 然后设置定时任务每天执行脚本即可。...crontab定时任务,不懂crontab自行百度 crontab -e 编辑指定时间执行哪个脚本 0 0 * * * /opt/sh/auto-deal-log.sh 总结 完成上述步骤以后,系统就能每天分割...tomcat日志了。

    2.1K20

    【Linux】journalctl 日志查看工具介绍

    基本介绍 journalctl 是一种用于查看、管理 Linux 系统日志的命令行工具,是 systemd 日志记录系统的一部分。...journalctl 能够快速加载大量日志文件,并且支持多种过滤和查询方式。 systemd 是 Linux 系统的一个初始化系统,它负责启动和管理各种服务和进程。...journalctl 的基本原理如下: 采集日志:journalctl 的日志由守护进程 systemd-journald 负责从内核、系统服务以及应用程序中采集 存储日志:systemd-journald...采集的日志将会以二进制格式存储在 /var/log/journal 目录下,每个日志条目都带有元数据,如时间戳、优先级、生成日志的服务名称等 轮转日志:当日志文件达到一定大小或时间限制时,systemd-journald...会自动保存并关闭当前文件,并创建一个新文件继续写入日志,实现日志轮转 检索日志:用户通过执行 journalctl 命令读取上述二进制日志文件,journalctl 引入了 B-trees 索引,可以实现快速检索日志

    4.1K10

    手把手教你,嘴对嘴传达------Apache日志管理日志(rotatelogs分割工具、AWStats日志分析)

    Apache日志管理 日志文件的产生 服务安装后,不会生成日志文件不会产生 服务启动后,生成日志文件 访问服务后,日志文件会生成内容 一、日志分割 随着网站的访问量增大,默认情况下Apache的单个日志文件也会越来越大...日志文件占用磁盘空间很大 查看相关信息不方便 对日志文件进行分割 Apache自带rotatelogs分割工具实现 第三方工具cronolog分割 二、rotatelogs分割工具 配置网站的日志文件转交给...rotatelogs分割处理 配置格式为 ErrorLog "| rotatelogs 命令的绝对路径 -l 日志文件路径/网站名-error_%Y%m%d.log 86400" '//which rotatelogs...(第三方工具,推荐使用) cronolog作为日志过滤程序,可用来切割linux日志文件,通过对输入的日志按文件名模板和当前日期重新编排,来按格式生成所需日志。...cronolog-1.6.2-14.el7.x86_64.rpm [root@sheng opt]# which cronolog /usr/sbin/cronolog 第二步:修改httpd主配置文件,按小时分割错误日志

    1.2K20

    Linux日志切割工具Logrotate配置详解

    [Linux日志切割工具Logrotate配置详解] 文章目录 [TOC] Logrotate 程序是一个日志文件管理工具。...用于分割日志文件,压缩转存、删除旧的日志文件,并创建新的日志文件,下面就对logrotate日志轮转的记录: 1....Logrotate配置文件介绍 Linux系统默认安装logrotate,默认的配置文件: /etc/logrotate.conf /etc/logrotate.d/ logrotate.conf:为主配置文件...//保留多少个日志文件(轮转几次).默认保留四个.就是指定日志文件删除之前轮转的次数,0 指没有备份 create //自动创建新的日志文件,新的日志文件具有和原来的文件相同的权限;因为日志被改名,因此要创建一个新的来继续存储之前的日志...//转储后的日志文件放入指定的目录,必须和当前日志文件在同一个文件系统 noolddir //转储后的日志文件和当前日志文件放在同一个目录下 sharedscripts //运行postrotate脚本

    19.6K52

    Linux日志切割工具Logrotate配置详解

    Logrotate 程序是一个日志文件管理工具。...用于分割日志文件,压缩转存、删除旧的日志文件,并创建新的日志文件,下面就对logrotate日志轮转的记录: 1.1 Logrotate配置文件介绍 Linux系统默认安装logrotate,默认的配置文件...4 //保留多少个日志文件(轮转几次).默认保留四个.就是指定日志文件删除之前轮转的次数,0 指没有备份 create //自动创建新的日志文件,新的日志文件具有和原来的文件相同的权限;因为日志被改名...,把当前日志备份并截断;是先拷贝再清空的方式,拷贝和清空之间有一个时间差,可能会丢失部分日志数据。...//转储后的日志文件放入指定的目录,必须和当前日志文件在同一个文件系统 noolddir //转储后的日志文件和当前日志文件放在同一个目录下 sharedscripts //运行postrotate脚本

    1.5K30

    使用Linux自带日志滚动工具logrotate滚动redis日志示例

    最易想到的是自己写脚本滚动日志,比如直接利用日志滚动脚本工具log_rotater.sh。...不过这里更推荐Linux系统自带的日志滚动工具logrotate: # which logrotate /usr/sbin/logrotate # which rsyslogd /usr/sbin/rsyslogd...Linux系统自带的日志滚动工具logrotate由两部分组成:一是命令行工具logrotate,二是后台服务rsyslogd。...,如果值为0表示不备份 2) minsize表示日志文件达到多大才滚动 3) nocompress表示是否压缩备份的日志文件 4) missingok如果日志丢失,不报错继续滚动下一个日志...5) notifempty日志文件为空时,不进行轮转,默认值为ifempty 6) create指定创建新日志文件的属性,logrotate是以root运行的,如果目标日志文件非root运行

    2.7K40

    详解Apache 日志分割教程 转

    一、日志切割 安装cronolog CentOS 5.3中编译安装Apache日志默认是不切割的,需要用用工具Cronnolog进行日志切割。...命令:service httpd restart 还有另外一种使用rotatelogs 方法配置: Linux系统配置方法: 将其改为 (PS:^_^不错的php学习交流群:276167802,验证:csl...%Y-%m-%d-%H_%M_%S为生成日志的格式,类似于这样:errorlog.2010-04-15-11_32_30 ,以年月日时分秒为单位的, 2M 为日志的大小,即为日志达到多大后生成新的日志文件...+480,单位为分钟; filesizeM指的是日志多大之后自动切割,可接受的单位为K,M,G,上面的ErrorLog设置为400M之后自动切割日志。...%Y-%m-%d-%H_%M_%S 5M" 此配置会在错误日志大小增长到5兆字节时滚动该日志,日志文件名后缀会按照如下格式创建:errorlog.YYYY-mm-dd-HH_MM_SS 。

    1.6K20

    几款Linux下的日志书写工具

    最近将工作环境切换到了Ubuntu 10.04 下,非常怀念原来的 Liver Writer,于是Google了一下,找找看Linux下是否有同样出色的离线博客编辑工具,下面是整理的一些结果,分享出来。...对Linux下的用户而言,富文本的编辑器选择确实比较少,但也并不是没有,下面就是几款比较好用的编辑器。...6、Thingamablog 这款软件可以说是Linux下特性最丰富的软件了,甚至支持浏览器样式的预览。...6、 Thingmablog Thingmablog可以说是特性最多的Linux客户端工具了,看看他那长长的特性列表都觉得很爽,可惜还没有详细的使用。 ...在参考资料 7 中还有其他的一些客户端的工具,这里就不再多说了,工具毕竟是工具,选一个趁手好用的就行,如果不是这些工具的开发人员,我们还是专注于提高自己博客的质量吧 :)  参考资料: 1、Five Desktop

    1.5K20
    领券