运维过程中经常会发现一些 C 程序,每天会生产这样的日志: /home/admin/app_name/logs/access_log

那么天长地久,如果这个程序不会自动去轮转这个日志,那么这个日志文件则会越来越大,我们其实可以使用 linux 里面的 logrotate 来实现自定义日志轮转.

方法如下:

一、建立轮转配置文件:

  1. #vi /etc/logrotate.d/app_name
  2. /home/admin/app_name/logs/access_log
  3. {
  4. daily
  5. dateext
  6. copytruncate
  7. nocompress
  8. rotate 15
  9. }

// /home/admin/app_name/logs/access_log  指明日志文件的绝对路径
// daily       表示日志每天轮转一次
// dateext     表示切换后的日志文件会附加上一个短横线和YYYYMMDD格式的日期,如果没有这个配置项则会附加一个小数点加一个数字序号
// copytruncate     表示在复制当前日志文件后,将日志文件清空;而不是将当前日志文件改名后创建一个新的
// nocompress     表示不压缩切换后的日志文件
// rotate 15     表示保存15份旧的日志文件

// 更多配置请参考 man logrotate 手册.

二、重启 syslogd 服务 (或 syslog-ng)

  1. service syslogd restart
  2. /usr/bin/killall -HUP syslogd
  3. service syslog-ng restart
  4. /usr/bin/killall -HUP syslog-ng

三、测试 (执行配置文件,强制进行一次日志轮转):

  1. logrotate -f /etc/logrotate.d/app_name

四、扩展其他日志切换操作:

  1. #ls /etc/logrotate.d/
  2. acpid conman cups httpd mgetty ppp psacct rpm samba sa-update setroubleshoot snmpd syslog-ng tsar up2date
  3. # 针对某个配置对其日志进行切换:
  4. logrotate -f config_name
  5. # 强制切换所有配置:
  6. logrotate -f /etc/logrotate.conf

Linux下使用logrotate实现日志切换的更多相关文章

  1. 在Linux下使用logrotate管理日志(转)

    原文地址:http://www.tuicool.com/articles/ieAnMjN logrotate是日志循环管理工具,可以分割日志文件,删除旧的日志文件,创建新的日志文件,循环管理日志从而节 ...

  2. Linux下一个简单的日志系统的设计及其C代码实现

    1.概述 在大型软件系统中,为了监测软件运行状况及排查软件故障,一般都会要求软件程序在运行的过程中产生日志文件.在日志文件中存放程序流程中的一些重要信息, 包括:变量名称及其值.消息结构定义.函数返回 ...

  3. Linux下自动清除MySQL日志文件

    MySQL运行过程中会生成大量的日志文件,占用不少空间,修改my.cnf文件配置bin-log过期时间,在Linux下自动清除MySQL日志文件 [mysqld] expire-logs-days= ...

  4. linux 下tomcat catalina.out日志操作

    1. 查看日志 tail -f catalina.out 会动态打印日志. 2. 查看所有日志 less -f catalina.out 打开所有日志后,默认是显示第一页,常用命令用到如下: G:到达 ...

  5. Linux下使用rsyslog部署日志服务器 && 记录history并发送到rsyslog服务器

    一.syslog服务简介 rsyslog 是一个 syslogd 的多线程增强版.rsyslog负责写入日志, logrotate负责备份和删除旧日志, 以及更新日志文件 logger命令 将自定义的 ...

  6. linux下mysql开启二进制日志

    mysql的查询日志,慢查询日志,错误日志,网上的设置方法是正确的.但在二进制日志上设置有问题.正确的设置方法如下, 在/etc/my.cnf文件中[mysqld]下加上: server-id = 1 ...

  7. linux下查看tomcat的日志

    工作期间有碰到服务器日志相关的,需要看tomcat运行日志,简单搜了下,摘为随笔,以供参考 一种是利用docker查看 1.使用dockerdocker logs -f -t --since=&quo ...

  8. linux下grep分析apache日志的命令集合

    https://my.oschina.net/hmc0316/blog/112004 实例:月份英文简写英文全称一月Jan.January二月Feb.February三月Mar.March四月Apr. ...

  9. 如何在Linux下优雅的查询日志

    做为一名合格的Java后台开发 经常需要查询线上的日志,定位线上问题 所以熟练掌握日志查询的命令 可以使你更加迅速的定位错误日志位置,及时解决问题 在此,我将介绍几个自己工作中经常使用到的日志查询命令 ...

随机推荐

  1. 美国罪案故事第一季/全集American Crime Story迅雷下载

    英文全名American Crime Story,第1季(2016)FX.本季看点:<美国罪案故事>以律师们的视角看待辛普森谋杀案. 本剧探索了案件背后各种混乱,以及案件双方的庭审策略,也 ...

  2. 得到ImageView中drawable显示的区域的计算方法

    我们都知道Imageview中有不同的拉伸比率,比如fitStart,centCrop这样的,所以imageview中的drawable不一定和imageview占有相同的位置和大小,那么怎么计算呢? ...

  3. Android Studio快捷键之代码提示

    相信很多人在用Eclipse的时候,很习惯的都会把Content Assist设置成.abcd...z,这样每次敲代码的时候都会有自动提示,写起代码来很方便.具体设置如图: 同时,Eclipse中也有 ...

  4. 光流法(optical flow)

    光流分为稠密光流和稀疏光流 光流(optic flow)是什么呢?名字很专业,感觉很陌生,但本质上,我们是最熟悉不过的了.因为这种视觉现象我们每天都在经历.从本质上说,光流就是你在这个运动着的世界里感 ...

  5. django数据模型中 null=True 和 blank=True 有什么区别?

    null 如果为 True , Django 在数据库中会将空值(empty)存储为 NULL .默认为 False . blank 设置字段是否可以为空,默认为False(不允许为空) 和null的 ...

  6. pair练习

    /* 编写程序读入一些列string和int型数据,将每一组存储在一个pair对象中, 然后将这些pair对象存储在vector容器里. */ #include <iostream> #i ...

  7. (转)PlayerPrefs在Windows下存到哪里去了?

    自:http://www.unitymanual.com/blog-77510-2971.html?_dsign=ec64b1e5 测试脚本  saveData.cs 附着在MainCamera上. ...

  8. matlab中subplot函数的功能 类似python

    原文:http://blog.163.com/my_it_dream_pwj/blog/static/17841430520112294342649/ 和python 中类似 subplot 功能 分 ...

  9. MFC获得当前用户等信息

    MFC获得当前用户等信息 #ifndef UNICODE #define UNICODE #endif #pragma comment(lib, "netapi32.lib") # ...

  10. 怎样在一个项目里用logger在控制台打印信息

    第一步: 导入jar包,maven项目可以直接添加 <dependency><groupId>log4j</groupId><artifactId>lo ...