zoukankan      html  css  js  c++  java
  • Linux下使用logrotate实现日志切换

    运维过程中经常会发现一些 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
    1. 相关阅读:
      软考估分
      极限编程(XP)12个最佳实践
      常见符号的英文读法
      又一道信号量的问题--做多了就容易错
      一道信号量前驱图的题目--有技巧
      信号量计算问题--n个进程, 共享3个资源, 当前信号量为-1, 其他进程继续执行P操作, 那么信号量应该继续减
      一道信号量的问题---卖火车票
      一道关于信号量的问题
      一道关于信号量的题目
      C语言int型数据范围
    2. 原文地址:https://www.cnblogs.com/chjbbs/p/6428778.html
    Copyright © 2011-2022 走看看