日志滚动与cron调度

1、日志滚动

nginx默认日志不能进行滚动,始终写入到一个文件中,即access.log。编写日志滚动的shell脚本,并使用linux的cron定时调度周期性进行日志文件滚动。

1.1 编写滚动脚本

  1. 创建roll_log.sh脚本文件

    以root身份在/usr/local/bin/创建umeng_roll_log.sh文件

    #切换到root身份
    $>su root #进入指定目录,该目录是path搜索目录,任何位置都可以直接调用脚本
    $>cd /usr/local/bin #创建脚本文件
    $>nano umeng_roll_log.sh

    文件内容如下:

    #!/bin/bash
    dateStr=`date '+%Y-%m-%d-%H-%M'`
    mv /usr/local/openresty/nginx/logs/access.log /usr/local/openresty/nginx/logs/access.log.${dateStr}
    touch access.log
    openresty -s reload
  2. 修改权限,设置执行权

    $>su root
    $>chmod +x/usr/local/bin/umeng_roll_log.sh

1.2 执行脚本,查看滚动效果

$>sudo /user/local/bin/umeng_roll_log.sh

2、使用linux crontab调度脚本

2.1 编写调度脚本

  1. 切换到root账户,修改/etc/crontab调度文件

    $>su root
    $>nano /etc/crontab
  2. 输入如下内容内容如下:

    SHELL=/bin/bash
    PATH=/sbin:/bin:/usr/sbin:/usr/bin
    MAILTO=root # For details see man 4 crontabs # Example of job definition:
    # .---------------- minute (0 - 59)
    # | .------------- hour (0 - 23)
    # | | .---------- day of month (1 - 31)
    # | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
    # | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
    # | | | | |
    # * * * * * user-name command to be executed
    * * * * * root source /etc/profile;/usr/local/openresty/nginx/logs/roll_log.sh

2.2 启动调度服务

#启动linux调度服务(d表示daemon守护进程的意思,例如firewalld)
$>sudo service crond start

2.3 服务相关命令

#服务控制
$>sudo service crond stop #停止服务
$>sudo service crond restart #重启crond
$>sudo service crond status #查看服务状态 #开机自启
$>sudo chkconfig crond on #启用开机自启
$>sudo chkconfig crond on #禁用开机自启
$>sudo chkconfig #查看开启自启列表

日志滚动与cron调度的更多相关文章

  1. Nginx插件之openresty反向代理和日志滚动配置案例

    Nginx插件之openresty反向代理和日志滚动配置案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.openresty介绍 1>.Nginx介绍 Nginx是一款 ...

  2. log4go的日志滚动处理——适应生产环境的需要

    日志处理有三类使用环境,开发环境DE,测试环境TE,生产环境PE. 前两类可以看成是一类,重要的是屏幕显示--termlog.生产环境中主要用的是socklog 和 filelog,即网络传输日志和文 ...

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

    截至到redis-5.0版本,redis仍然不会自动滚动日志文件,如果不处理则日志文件日积月累越来越大,最终将导致磁盘满告警: # ls -lh total 12G -rw-r--r-- 1 redi ...

  4. log4go的日志滚动处理——生产环境的适配

    日志处理有三类使用环境,开发环境DE,测试环境TE,生产环境PE. 前两类可以看成是一类,重要的是屏幕显示--termlog.生产环境中主要用的是socklog 和 filelog,即网络传输日志和文 ...

  5. log4j笔记:升级2.X版本的日志滚动问题

    因为slf4j依赖的log4j在流量大的时候总遇到多线程引起的死锁问题,升级到log4j2.x版本.原来的log4j.properties配置文件已经不被log4j2支持了,需要改写为log4j2.x ...

  6. (转)python中用logging实现日志滚动和过期日志删除

    转自:https://blog.csdn.net/ashi198866/article/details/46725813 logging库提供了两个可以用于日志滚动的class(可以参考https:/ ...

  7. muduo网络库源码学习————日志滚动

    muduo库里面的实现日志滚动有两种条件,一种是日志文件大小达到预设值,另一种是时间到达超过当天.滚动日志类的文件是LogFile.cc ,LogFile.h 代码如下: LogFile.cc #in ...

  8. Quartz公共类,log4net 日志分目录 ,调度任务。

    版本:Quartz 2.5 ,log4net 2.0.8 QuartzHelper namespace Job.Common { public class QuartzHelper { private ...

  9. Python Logging模块 输出日志颜色、过期清理和日志滚动备份

    # coding:utf-8 import logging from logging.handlers import RotatingFileHandler # 按文件大小滚动备份 import co ...

随机推荐

  1. Dictionary 检测key是否存在

    if(dict.ContainsKey(T key)) { //已存在key }

  2. C语言中的定义与声明

    什么是定义?什么是声明?它们有何区别? 举个例子: 1 2 A)int i; B)extern int i;(关于extern,后面解释) 哪个是定义?哪个是声明?或者都是定义或者都是声明?我所教过的 ...

  3. vmware正在使用中问题

    解决方法:找到vmware目录下的.lck文件,将其删掉即可.

  4. java重载equals和hashCode

    class Employee { private int salary; private java.util.Date hireDay; private String name; public int ...

  5. Ubuntu 14.04下MySQL服务器和客户端的安装

    下面进行简单的配置 安装完成后通过修改/etc/mysql/my.cnf(此文件为mysql的配置文件).将文件中的binding-address=127.0.0.1注释掉.其它配置根据需要更改. H ...

  6. sql函数将1,2,3转换为表

    /****** Object: UserDefinedFunction [dbo].[splitstring_to_table] Script Date: 2017/7/11 9:35:58 **** ...

  7. esper(3)-窗口&聚合分组

    一.Insert and Remove Stream 1. select * from com.ebc.updatelistener.User 只输出newEvents,不会输出oldEvents.即 ...

  8. TCP/IP协议<一>

    下面是协议层从底层至顶层的一个模型图: 一.计算机网络的背景 1.1 计算机的发展 有人说:“20世纪最伟大的发明就是计算机”,自诞生伊始,计算机经历了一系列发展,从大型通用计算机.超级计算机.小型机 ...

  9. maya2016安装失败如何卸载重装

    AUTODESK系列软件着实令人头疼,安装失败之后不能完全卸载!!!(比如maya,cad,3dsmax等).有时手动删除注册表重装之后还是会出现各种问题,每个版本的C++Runtime和.NET f ...

  10. C# 反射 Type.GetFields 方法

    using System.Collections; using System.Collections.Generic; using UnityEngine; using System.Reflecti ...