首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

日志切割工具-Logrotate实现nginx日志切割

我们不管在生产环境还是开发环境,看日志是必不可少的,日志中往往包含很多有用的信息,有时候被DDOS、上传非法文件等等,我们都需要通过日志分析。...我们只需要配置你所需要切割的参数就可以。 很多程序的会用到logrotate滚动日志,比如nginx。它们安装后,会在/etc/logrotate.d这个目录下增加自己的logrotate的配置文件。.../etc/logrotate.conf include /etc/logrotate.d 常见参数 dateext: 切割日志带上日期 monthly: 日志文件将按月轮循。...定制化nginx日志切割 /var/log/nginx/*.log { daily dateext missingok rotate 14...logrotate /etc/logrotate.conf # 要为某个特定的配置调用logrotate logrotate /etc/logrotate.d/log-file 调试配置 模拟日志切割

2K10

日志切割

那么其中的reopen,就是我们今天的主角,我们可以使用reopen来实现日志切割。...原理解析: 发送信号,其实是执行: kill -USR1 `cat /usrlocal/nginx/logs/nginx.pid` 以上两种方式都可以实现日志切割,你可以任意选择。...定期执行: 日志切割时企业中常规动作,我们不会每天去手工执行一遍命令,通常是让脚本自己执行,于是我们可以将这个动作写进任务计划,每天凌晨自动执行。 脚本: #!...-eq 0 ];then echo "$(date +%F) 日志切割成功" fi 写入任务计划: 在/var/spool/cron/root文件中添加如下代码,每天11:59分自动切割日志...: 59 23 * * * /bin/sh nginx_cut_log.sh >>/tmp/nginx_cut.log 2>&1 到这里简单的日志切割工作就完成啦。

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

    Nginx 日志切割

    日志切割 当网站访问量大后,日志数据就会很多,如果全部写到一个日志文件中去,文件会变得越来越大,文件大速度就会慢下来,比如一个文件几百兆,写入日志的时候,就会影响操作速度....手动切割 --进入日志目录 cd /usr/local/nginx/logs/ --重命名日志文件 [root@host1 logs]# mv access{,....,日志目录中自动生成了一个新的'access.log'文件 /usr/local/nginx/sbin/nginx -s reopen 重命名日志文件后,'nginx'日志仍然会写入到"access.2020...重命名后,我们需要让nginx重新打开一个新文件,以便将新的日志写入到新文件中 编写脚本 --编写脚本实现日志切割,可以配合'crontab'计划任务 [root@host1 /]# vim /nginx_logs.sh...,以endscript结尾,命令需要单独成行 endscript 重启nginx日志服务,写入到新的文件中去,否则会依然写入重命名后的文件中 启动 --启动'logrotate'并且指定配置文件切割

    1.3K10

    Nginx 日志切割

    最近还在写图床工具,涉及到日志统计相关的,比如访问统计,流量统计等,看了一下七牛的实现,发现每次创建一个bucket仓库都会自动生成一个域名,该仓库下的资源都会走这个域名。...但是自己要实现这一套逻辑还是满繁琐的,所以初步还是考虑用 Nginx 的一些功能来代替,其中流量统计就考虑使用 Nginx 自带的日志来分析。...考虑到日后日志大小过大,NodeJs读取会花太多时间,所以是要按天来切割日志,刚开始我写了一个简单的脚本。利用 crontab 的定时功能。...先按日期重命名文件,然后新建一个同名的日志文件让 Nginx 来写入,实际测试发现新建的 log 并没有被写入。...但是 Nginx reload 却可以,最终网上找到了 killall -s USR1 nginx 这条命令来通知 Nginx 重新创建新的日志 #!

    89750

    Nginx 日志切割

    最近还在写图床工具,涉及到日志统计相关的,比如访问统计,流量统计等,看了一下七牛的实现,发现每次创建一个bucket仓库都会自动生成一个域名,该仓库下的资源都会走这个域名。...但是自己要实现这一套逻辑还是满繁琐的,所以初步还是考虑用 Nginx 的一些功能来代替,其中流量统计就考虑使用 Nginx 自带的日志来分析。...考虑到日后日志大小过大,NodeJs读取会花太多时间,所以是要按天来切割日志,刚开始我写了一个简单的脚本。利用 crontab 的定时功能。...先按日期重命名文件,然后新建一个同名的日志文件让 Nginx 来写入,实际测试发现新建的 log 并没有被写入。...但是 Nginx reload 却可以,最终网上找到了 killall -s USR1 nginx 这条命令来通知 Nginx 重新创建新的日志 #!

    48410

    Mongodb日志切割

    Mongodb日志切割 依据客户端查询来设计集合的片键及索引,最近几天突然需要查询历史数据进行分析,我们的有些集合count达到亿条以上,每个文档几百个字段。...遇到问题第一反应是看日志文件,拿到notepad之后由于文件太大无法打开,只能采用重启,然后开始查询mongodb日志管理的文档。Mongodb官网提出可以对日志进行切换。...在admin数据库中,执行命令db.runCommand({logRotate:1})告诉数据库进行日志切换。会生成:log_rout.log.2017-02-22T02-10-09 类似的日志文件。...如果希望定时生成日志文件,而不是人工的每天执行命令。...,以便于查找某一天的日志,先睡眠,因为日志的移动可能需要时间,然后根据当天的日期创建文件夹. sleep 30m CURRENT_MONTH=$(date +%Y-%m) CURRENT_DAY=

    1.7K70

    11.23 访问日志切割

    访问日志切割目录概要 日志一直记录总有一天会把整个磁盘占满,所以有必要让它自动切割,并删除老的日志文件 把虚拟主机配置文件改成如下: DocumentRoot...img 重新加载配置文件 -t, graceful ls /usr/local/apache2.4/logs 访问日志切割日志一直往一个文件中写入,总会有一天把磁盘写满...,所以就需要把文件每天做一个切割,然后超过一定时间段的这些日志删除或者拷贝走,这样就能保证磁盘永远写不满 打开配置文件 vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf...如果不指定 -l ,那么就会指定 UTC时间 的格式去切割日志 在中国应该是 CST,在美国是 UTC ,两者时区不同,相差几个小时 定义日志的名称,因为是切割的,所以根据时间日期让它自动变,就需要加一个变量...另外还需要做一个任务计划,超过一个月或两个月的日志删除,如果不删除,那是否切割日志就没有意义了 日志切割总结 做日志切割的目的,是为了防止磁盘写满,另一个目的就是为了更方便的去管理日志

    704100

    Nginx日志定时切割

    nginx的日志文件如果你不处理,将变得越来越大,我们可以写一个nginx日志切割脚本来自动切割日志文件。 第一步就是重命名日志文件,不用担心重命名后nginx找不到日志文件而丢失日志。...nginx主进程接到信号后会从配置文件中读取日志文件名称, 重新打开日志文件(以配置文件中的日志名称命名),并以工作进程的用户作为日志文件的所有者。...重新打开日志文件后,nginx主进程会关闭重名的日志文件并通知工作进程使用新打开的日志文件`。 工作进程立刻打开新的日志文件并关闭重名名的日志文件。 然后你就可以处理旧的日志文件了。...nginx日志按日期自动切割脚本cut_nginx_log.sh如下: #!...,并重新生成今天的新日志文件。

    45440

    Lotgstash日志切割示例

    logstash的功能有一点是把 各种软件生成的各种格式的日志 转换成一个方便检索筛选的格式,本文演示了一个最简单的例子。..., "host" => "server-31", "time" => "09:27:09", "mounth" => "Jan" } 转换后的内容传入elasticsearch中,用户就可以按照时间、日志等级...、主机等对汇总的日志进行筛选检索 二 转换的过程 还是以刚才那条日志为例 =INFO REPORT==== 16-Jan-2017::09:27:09 === Mirrored queue 'reply...在配置文件中配置多行合并 codec => multiline { pattern => "^=" what => "previous" negate => true } 最终日志转换为 =INFO...结合所有的rabbitmq的日志总结规律为 =“日志级别” REPORT====  "日期"::“时间” ===\n“日志内容” 注意不要忘记中间的空格 3、正则匹配 logstash内置了很多常规正则

    63330

    Nodejs日志管理之日志切割

    下面就说下nodejs在实战中的日志管理 日志管理一般有两种,一种是上传到日志服务器,一种是本地保存。 每个公司实现情况不一样,下面只说下本地保存的方案。...基础pm2的日志切割 使用pm2自带的日志切割插件,pm2-logrotate, 安装 # CLI配置 pm2 set pm2-logrotate: // ~/.pm2/module_conf.json...logrotate - linux自带的切割工具 logrotate是linux(centos)自带的一款日志切割工具,使用范围上更加宽,不只局限于nodejs的。...,更精细的命名可以放在postrotate里 dateformat -%Y%m%d.log missingok # 找不到日志可以忽略 notifempty # 空日志不处理 compress...实现细节是把Log日志copy一份,再把原先的日志内容清空。 好处是不需要重启Pm2,缺点是从copy到清空这一时间段的日志是会丢失的。

    1.7K20

    nginx 日志定时切割

    最近有个需求,需要查看我们官网的日活,我是打算通过查看 nginx 日志,对每条日志进行切割,过滤出 ip,然后通过 set 集合去重,查看集合 set 的长度就是当天的日活了。...我的 nginx 是通过 yum 安装的,默认会对 nginx 日志进行切割,但是每天切割的时间不是当天的 00 点,这样得到的日活数据可能不太准确。我就打算自定义 nginx 日志切割。 ?...所谓的"切割",并不是真的把一个文件"切成两个",只是把原来的"access.log"文件重命名,比如重命名为今天的日期"2020-05-17.log",然后再创建一个名为"access.log"的新文件...,以便新生成的日志仍然可以写入到名为"access.log"的新文件中,这样就能实现所谓的"日志滚动"或者"日志切割"的效果了。...,我们需要让nginx重新打开一个新文件,以便将新的日志写入到新文件中。

    72410

    日志切割工具--logrotate

    logrotate /etc/logrotate.conf # 全局配置文件 /etc/logrotate.d ---- 安装 yum install logrotate ---- 配置(示例每天定时切割...# 用于还在打开中的日志文件,把当前日志备份并截断 rotate 30 # 保留30天的备份文件,一定要备份,如果不配置默认是0,也就是只允许存在一份日志,刚切出来的日志马上就会被删除 compress...# 通过 gzip 压缩转储日志 notifempty # 如果是空文件,不转储 dateext # 文件后缀是日期格式,也就是切割后的文件是xxx.log-20220312.gz missingok...nocreate # 不建立新的日志文件 delaycompress 和 compress # 一起使用时,转储的日志文件到下一次转储时才压缩 nodelaycompress...E-mail 地址 nomail # 转储时不发送日志文件 olddir directory # 转储后的日志文件放入指定的目录,必须和当前日志文件在同一个文件系统 noolddir

    43731

    Docker 日志切割参考

    (/usr/docker-vol/nginx/logs)下 本次每天0:00做日志切割,将切割后的日志文件(access.log、error.log)存放在宿主机的目录(/usr/docker-vol/...nginx/logs-bak)下 期望的日志备份目录结构: 1级目录:4位年-2位月 2级目录:4位年-2位月-2位日 3级目录:存放切割后备份的日志文件 ?.../bin/bash 指定日志切割日志备份的目录 YEAR= ? (date +%m) DAY= ?...---- 后话: 不停机做日志切割可能会出现日志记录丢失的情况(即拷贝走、清空源文件之间会有时间间隔),但是对于目前的业务,一天的日志信息量不大且丢失的日志对于整天的日志来说犹如沧海一粟,故现在先用这个方案来解决...docker部署后的nginx日志切割

    1.9K10

    LogRotate 切割 Nginx 日志

    一直以来做日志切割都是使用 shell + crontab 来搞,shell 脚本可以在网上找到各种版本的,改改就用了,懒省事。...如果没有安装,您可以使用以下命令进行安装: yum install -y logrotate 三、Logrotate 配置Nginx 日志切割 要使用Logrotate对Nginx日志进行切割,您可以按照以下步骤进行配置...现在,Logrotate将根据配置自动对Nginx日志进行切割。 经过编辑和保存后,您可以检查Nginx日志切割的配置是否正确。...这意味着您的配置是正确的,并且Logrotate将在指定的时间自动执行日志切割操作。...如果您想测试一下配置的效果,可以使用以下命令手动强制执行一次日志切割操作: logrotate -f /etc/logrotate.d/nginx 执行后,请检查配置目录下是否存在切割后的日志文件。

    93911
    领券