`
feikiss
  • 浏览: 100318 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

Linux中利用logrotate来对log文件进行循环管理

阅读更多
Syslog-ng服务是Linux系统中重要的日志服务,搞过Linux下日志管理的大虾门肯定都熟悉这项服务,在此就不再赘述。现在谈一下对日志文件的管理问题。

Syslog-ng服务只提供对log进行接收以及再处理(继续分发或者存储),但并不对产生的log文件进行管理,这样导致的后果就是可能这个文件越来越大,在我们这个项目中,由于忘了对日志文件进行管理,结果导致这个日志文件20多G,囧,很有可能导致系统崩溃。

日志文件管理这项工作其实是由logrotate模块来负责。

对于logrotate可以参考官网, 上面有详尽的介绍,最常用的三个方式为:
logrotate /etc/logrotate.conf:重新读取配置文件,并对符合条件的文件文件进行rotate。
logrotate -d /etc/logrotate.conf:调试模式,输出调试结果,但并不执行。
logrotate -f /etc/logrotate.conf:强制模式,对所有相关文件进行rotate。

至于logrotate对文件进行管理时的所要执行的规则,可以在/etc/logrotate.d文件夹下创建文件,logrotate会在执行的时候自动读取相应的规则,比如,我在/etc/logrotate.d/路径下新建了一个名为syslog的文件,其中的内容为:
/log/test.log
{
         size 10M
         create
         start 10
         rotate 4
         compress
         copytruncate
}


上面代码的意思为当文件/log/test.log的大小超过10M时就开始循环,允许logrotate创建文件,循环文件的开始为10,即文件为为test.log.10.gz,最多循环创建4个文件,即为test.log.13.gz,多于四个后开始在第一个上面循环,依次迭代。
 
  这样在配置logrotate的规则的时候就相对非常灵活,当我需求改动,需要添加其他新的规则的时候,我就不必修改syslog文件中的规则,可以新创建一个文件,添加相应的规则即可。这种灵活的配置方式对编程来说是一大便利,对于编程来说就是更容易实现对规则的自动控制了。

另外的一个问题,logrotate规则配置好后怎么定时去执行呢?这个就可以交给Linux中的crontab来控制了,具体的crontab的配置可以参考官网,我这里给出我使用的demo:
执行:vi /etc/crontab
配置如下:
*/5 * * * * root /sbin/logrotate /etc/logrotate.conf

表示每隔5分钟执行检查一次。

这样整个配置就基本上完成了。
0
0
分享到:
评论

相关推荐

    Linux系统管理白皮书.rar

    6. **日志管理和监控**(可能在026.pdf中):日志文件是排查系统问题的关键,学习查阅和分析/var/log下的各种日志文件,以及使用工具如logrotate进行日志管理,是系统管理员的日常工作。 7. **启动和初始化流程**...

    LINUX系统管理白皮书.rar

    《LINUX系统管理白皮书》是一份详细阐述Linux操作系统管理的综合性文档,旨在帮助用户理解和掌握在Linux环境中进行系统管理的各项技术与实践。Linux,作为一款开源、免费的操作系统,因其稳定性和灵活性,被广泛应用...

    一周内学会linux系统管理(PPT文档)

    Linux系统管理是IT领域中的基础技能之一,尤其对于运维人员和开发者来说至关重要。这份"一周内学会Linux系统管理"的PPT文档旨在帮助初学者快速掌握Linux的核心概念和常用操作,以便在短时间内提升Linux系统的管理和...

    linux 下web服务器每天生成日志的shell脚本

    在Linux环境中,Web服务器如Apache或Nginx每天都会生成大量的访问日志,这些日志对于监控服务器状态、分析用户行为、排查问题等都至关重要。为了有效地管理和利用这些日志,我们可以编写一个shell脚本来自动化地处理...

    Linux操作系统服务器日志管理详解

    此外,可以利用工具如`logrotate`自动化日志文件的轮换,确保日志文件不会过大,并且保留一定期限的历史记录。 日志管理不仅是故障排查的手段,更是安全审计的重要依据。通过对日志的深入分析,可以发现潜在的安全...

    linux完全教程

    日志系统通常以“/var/log”目录下的文件形式存在,可以通过“tail”命令实时查看日志文件,也可以使用“logrotate”程序来管理日志文件的轮转。 ### Linux脚本编程 Shell脚本编程是Linux系统管理员的基本技能之一...

    linux技能表

    1. 日志管理:查看/var/log下的系统日志,掌握logrotate进行日志轮换。 2. 系统监控:使用vmstat、iostat、netstat监控系统资源使用情况。 七、Shell脚本编程 1. Bash基础:学习Bash shell语法,编写简单的自动化...

    LINUX笔记

    10. **系统维护**:定期更新系统以获取最新安全补丁,使用`cron`设置定时任务,利用`logrotate`管理日志文件,保持系统的稳定和安全。 以上只是Linux基础知识的一部分,深入学习还需要实践操作和持续探索。《鸟哥的...

    Linux高级技巧集

    在IT领域,Linux系统是众多开发者、系统管理员和爱好者的重要工具。它以其开源、免费、稳定和...而"Linux高级技巧集.chm"这份文档,很可能是对这些内容的详细讲解,建议你查阅并实践其中的实例,以提升你的Linux技能。

    LINUX 24学时教程.zip

    7. **进程管理**:讲解如何查看和管理运行在Linux中的进程,包括`ps`、`top`命令的使用,以及如何启动、停止和监控服务。 8. **网络配置**:涵盖网络接口的配置,如IP地址、子网掩码、默认网关的设置,以及DNS解析...

    linux常用脚本,实现获取一个指定区间内未被占用的随机端口号、查看日志大小、清理日志、离线自动安装mysql

    在Linux系统中,脚本是自动化任务执行的重要工具,尤其对于服务器管理而言,高效且可靠的脚本能够极大地提升运维效率。以下将详细讲解标题和描述中提到的几个关键知识点: 1. **获取指定区间内未被占用的随机端口号...

    linux常用命令全集

    以上仅是Linux常用命令的一部分,实际使用中,还有很多其他命令和组合方式,可以根据需求进行学习和应用。通过深入理解和实践,可以提高在Linux环境下的工作效率。"Linux常用命令全集.CHM"文件包含了更详尽的命令...

    Linux运维工程师面试常见问题汇总共2页.pdf.zip

    这份PDF文档,虽然名为“Linux运维工程师面试常见问题汇总共2页”,但其内容可能涵盖了诸多关键知识点,是准备Linux运维岗位面试者的宝贵资料。下面,我们将围绕这些关键词,深入探讨一些可能出现在面试中的问题和...

    《Linux命令行大全》.((美)William E.shotts,Jr).PDF

    - **日志轮转**: 使用`logrotate`自动管理日志文件。 #### 3. 磁盘空间管理 - **df**: 显示磁盘分区的使用情况。 - **du**: 检查目录或文件占用的空间大小。 通过上述知识点的学习与实践,读者可以全面了解并掌握...

    Linux命令从入门到精通一到十章

    在IT领域,Linux操作系统是开发者、系统管理员和网络工程师的重要工具。掌握Linux命令行技能是提升工作效率的关键。本文将深入探讨“Linux命令从入门到精通”一书中涵盖的知识点,帮助读者逐步熟悉并精通Linux环境下...

    mplayer+日志eververv

    标题中的“mplayer+日志eververv”可能指的是使用MPlayer时产生的日志文件或者涉及到对日志进行监控和分析的情况。在Linux环境下,日志文件对于追踪程序运行状态、调试问题和优化系统性能至关重要。 MPlayer的使用...

    Linux-FTP配置说明及安装源文件

    为了能够使用ftp服务器能够使用数据库文件对用户进行身份验证,还需要修改vsftpd的PAM文件,把以前的pam中的内容注释掉,并加入以下 内容。 [root@redhat etc]# vi /etc/pam.d/vsftpd #auth required pam_listfile....

    Linux指令一周通 (技术图书大系).azw3

    5.32 logrotate指令:管理log文件 5.33 man指令:帮助手册 5.34 nice指令:设置优先级 5.35 procinfo指令:显示系统状态 5.36 ps指令:报告程序状况 5.37 pstree指令:以树状图显示程序 5.38 reboot指令:重新启动 ...

    常用shell脚本,更加快捷的管理服务器

    shell 脚本是利用 Shell 的命令解释功能,对一个纯文本的文件进行解析,然后执行这些功能,也可以说 shell 脚本就是一系列命令的集合。Shell 可以直接使用在 win/Unix/Linux 上面,并且可以调用大量系统内部的功能来...

Global site tag (gtag.js) - Google Analytics