nginx日志分割及备份
环境:centos7 nginx1.16.1
一、分割及备份的目的
nginx默认将日志信息写在一个文件中,时间一久日志文件中条目越来越多,文件越来越大,不方便查看,备份的时候也不需要备份重复的信息,故需分割日志,将日志按小时,
天,周...分割,写到不同的日志文件中。
二、实现原理
通过linux自定义脚本,完成日志的分割和备份,使用定时任务,实现自动备份。
三、代码实现
1. 在Linux上创建脚本文件runlog.sh。写入如下代码:
#!/bin/bash
base_path='/usr/local/nginx/logs/' #日志文件目录
log_name='fanshehu.access.log' #日志文件名
log_path_y=$(date -d yesterday '+%Y' )
log_path_md=$(date -d yesterday '+%m%d')
log_path_hms=$(date -d yesterday '+%H%M%S')
mkdir -p /date/nginx_logs/$log_path_y/$log_path_md #创建备份目录
mv $base_path$log_name /date/nginx_logs/$log_path_y/$log_path_md/$log_path_hms-$log_name #移动日志
touch $base_path$log_name #生成新日志文件
kill -USR1 $(cat /usr/local/nginx/logs/nginx.pid) #nginx重读配置文件
2. 设置Linux定时任务:
作用:自动执行脚本,实现日志的分割备份
cron服务是一个定时执行的服务,可以通过crontab 命令添加或者编辑需要定时执行的任务,crond是定时服务的守护进程
(1) 启动服务:
systemctl /start/stop/restart/reload/status crond
(2) 设置定时任务类容:
crontab -e #此方式的定时任务用户是当前登录linux用户,加入如下代码
*/1 12-23 * * * /home/sh/runlog.sh #每天12-23时期间,每分钟执行一次
注意:脚本其它用户要有可执行权限,目录要有读权限
drwxrw-rw- 3 root root 4096 Nov 21 17:10 date
-rwxr-xr-x 1 root root 469 Nov 21 17:00 runlog.sh
(2) 设置开机自启:
vim /etc/rc.d/rc.local或vim /etc/rc.local #它们是一个文件,此文件中的命令在用户登录前便会执行。在文件中加入如下代码:
/bin/systemctl start crond.service
四、Linux定时任务
1. linux启动流程:

(2)相关命令
crontab -l #查看当前用户的定时任务列表
crontab -e #编辑当前用户的定时任务
crontab -r #删除当前用户的所有定时任务
crontab -u #设定定时任务的用户
tail /var/log/cron #查看定时任务日志
(4)定时任务格式
* * * * * [用户] 命令 #用户是cron服务的用户,命令一般是.sh脚本,*表示每
分钟 小时 日 月 星期
(0-59)(0-23)(1-31)(1-12)(0-6)
例:
0,30 18-23 * * * 18:00-23:00间每小时0分和30分钟执行
0 23 * * 6 星期6,23:00执行
* */1 * * * 每小时执行
* 23-7/1 * * * 23:00-7:00间每小时执行
0 4 1 jan * 一月一号4:00
0 0 10-20 * * 10号~20号,每天00:00执行
注意事项:
1. 日志备份目录有可写权限
2. 脚本其他用户有可执行权限,755
nginx日志分割及备份的更多相关文章
- nginx 日志分割(简单、全面)
Nginx 日志分割 因业务需要做了简单的Nginx 日志分割, 第1章 详细配置如下. #建议在mkdir /home/shell -p 专门写shell 脚本位置 root@localhost ...
- linux中使用corntab和shell脚本自动备份nginx日志,按天备份
编写shell脚本,实现nginx日志每天自动备份到指定文件夹! 需要的命令mv , corntab -e(定时任务),shell脚本 这里先说一下corntab: https://www.cnblo ...
- logrotate 进行nginx日志分割
http://www.williamsang.com/archives/1254.html 日志分割常用方法: 自己写脚本分割 使用linux自带的logrotate 前者灵活,可以应对各种需求,自定 ...
- nginx日志分割配置实例
Nginx没有类似Apache的cronolog日志分割处理的功能,但是,可以通过nginxNginx的信号控制功能利用脚本来实现日志的自动切割.请看下面的一个实例.Nginx对日志进行处理的脚本: ...
- nginx日志分割总结
nginx日志自己不会进行分个,所有日志都会累积的记录在 access.log,error.log 中,当请求量大,一天就能到几百兆,如果不进行分给,对日志的查看和写入性能都有影响. 1. 编写脚本n ...
- 使用logrotate做nginx日志分割
版权申明:转载请注明出处. 文章来源:http://bigdataer.net/?p=266 背景 nginx是一款非常优秀的网络代理工具,但是其日志管理有点缺憾:nginx的access_log会无 ...
- nginx日志分割小脚本
nginx的日志一直是写在一个文件上面,运行久了之后文件会非常大,因此我们有必要对nginx的日志进行分割: 1 2 3 4 5 6 7 8 9 10 11 #! /bin/bash ACCESS ...
- nginx日志分割脚本
[root@localhost nginx]# cat logs/nginx.pid 5118[root@localhost nginx]# kill -QUIT 5118-QUIT : 关闭进程-H ...
- nginx 日志分割
利用 crontab + shell 来实现nginx的 access log 按天切割,便于统计.具体实现如下: shell: #! /bin/sh NGINX_DIR=/data/apps/ngi ...
随机推荐
- SGD的动量(Momentum)算法
引入动量(Momentum)方法一方面是为了解决“峡谷”和“鞍点”问题:一方面也可以用于SGD 加速,特别是针对高曲率.小幅但是方向一致的梯度. 如果把原始的 SGD 想象成一个纸团在重力作用向下滚动 ...
- C++面向对象程序设计学习笔记(5)
派生类与继承 概念 继承允许编程者在已有类的基础上创建新的类,可以从一个或者多个已有类中继承函数和数据,并重新定义或者添加新的函数和数据,已有类称为基类或父类,新类称为派生类和子类. 声明 声明一个派 ...
- 求职-DB相关职位常见face题
数据分析是个通用技能,适合各行各业,比如运营.产品.分析等职位都会要求会数据分析. 一.考察对数据分析岗位的理解与职业规划 数据分析师与数据工程师的区别在哪里? 为什么转行, 为什么没在公司内部转岗? ...
- shell编程(1)
shell编程(1) 杨乾成 2017301500302 一.尝试ping 题目第一项要求是检验自己主机所在网段有多少主机连通.于是我写的shell程序如下: #!/bin/bash i=; coun ...
- 页面配置snmp设备有问题,有时候能收到测试团体名的信息,有时候收不到
现在走的是使用fabric远程连接zabbix服务器,这其中也会耗时间,代码中写的2s不返回数据就提示检查snmp信息失败,不合理, 目前df的server跟show在同一台机器,可以在本地直接调用, ...
- string方法介绍
#_*_coding:utf-8_*_#作者:王佃元#日期:2019/12/9#string操作print('hello'*2) #乘法操作,输出对应次数print('helloworld'[2:]) ...
- 数据呈现到 ASP.NET Core MVC 中展示
终于要将数据呈现到 ASP.NET Core MVC 中的 视图 上了 将数据从控制器传递到视图的三种方法 在 ASP.NET Core MVC 中,有 3 种方法可以将数据从控制器传递到视图: 使用 ...
- PassGuard密码控件配置
运行环境 win服务器 系统server2008R2 C# ASP.NET服务器页面 前端部分 1.引用 //JS部分引用 <script type="text/javasc ...
- oracle-报错 RMAN-03002,RMAN-06172
RMAN> restore standby controlfile from "/data/oracle/contral.ctl"; Starting restore at ...
- C# HTTP系列10 form表单的enctype属性
系列目录 [已更新最新开发文章,点击查看详细] 在ASP.NET编程中经常遇到下面的代码片段,将人员信息以表单方式提交到后台程序并保存到服务器与数据库中. <form action=&q ...