服务器之家:专注于服务器技术及软件下载分享
分类导航

Linux|Centos|Ubuntu|系统进程|Fedora|注册表|Bios|Solaris|Windows7|Windows10|Windows11|windows server|

服务器之家 - 服务器系统 - Linux - Linux下使用cronolog切割服务器日志文件的方法

Linux下使用cronolog切割服务器日志文件的方法

2019-07-15 11:35摩西莫西chakey Linux

这篇文章主要介绍了Linux下使用cronolog切割服务器日志文件的方法,文中给出了一个用于Tomcat的示例,需要的朋友可以参考下

Linux下运行的Web服务器Apache,默认日志文件是不分割的,一个整文件既不易于管理,也不易于分析统计。安装cronolog后,可以将日志文件按时间分割,易于管理和分析。
 
cronolog安装配置非常简单,下载后只需要输入几个命令即可完成。
 
1、下载(最新版本)
 

复制代码

代码如下:


# wget http://cronolog.org/download/cronolog-1.6.2.tar.gz


2、解压缩

复制代码

代码如下:


# tar zxvf cronolog-1.6.2.tar.gz


3、进入cronolog安装文件所在目录

复制代码

代码如下:


# cd cronolog-1.6.2


4、运行安装

复制代码

代码如下:


# ./configure
# make
# make install


5、查看cronolog安装后所在目录(验证安装是否成功)

复制代码

代码如下:


# which cronolog


一般情况下显示为:/usr/local/sbin/cronolog
 
整个安装过程结束,下面需要把日志的格式配置一下:
 
1、虚拟主机配置文件 httpd-vhosts.conf
 
将Web日志设置 CustomLog 修改为以下格式
 

复制代码

代码如下:


CustomLog "|/usr/local/sbin/cronolog /www/logs/example_%Y%m%d.log" combined


当然,错误日志设置 ErrorLog 也可以利用 cronolog 分割,设置为
 

复制代码

代码如下:


ErrorLog "|/usr/local/sbin/cronolog /www/logs/error_%Y%m%d.log"


2、如果服务器上只有一个站点(当然这种情况比较少),直接按上面所说格式修改 httpd.conf 文件日志设置部分。
 
说明:
 
绿色部分 为 cronolog 安装后所在位置,系统版本不同可能位置不完全一样,以 which 命令查看到的位置为准; 
蓝色部分 为设置的日志文件所在位置,根据需要修改; 
红色部分 为设置的日志文件标识性字符,根据需要修改; 
%Y%m%d 为日志文件分割方式,例子中为“年月日”,也可以修改成自己需要的。 
 
 
修改httpd.conf文件:
这个文件在我的电脑上是在 /etc/httpd/conf/httpd.conf 不同的服务器 应该是不一样的
 
在最后加上

复制代码

代码如下:


<VirtualHost *:80>
# ServerAdmin webmaster@dummy-host.example.com
# DocumentRoot /www/docs/dummy-host.example.com
# ServerName dummy-host.example.com
ErrorLog /data/logs/apache/webapps.wps.cn-error_log
CustomLog "|/usr/local/sbin/cronolog /data/logs/apache/%Y%m%d/access_log.%H" combined 
#这个保证了每天一个文件夹 文件夹下 每个小时产生一个log
#CustomLog "|/usr/local/sbin/cronolog /data/logs/apache/%Y%m%%Hdaccess_log" combined 
</VirtualHost>
进入到 /etc/init.d/httpd configtest 这样验证你的配置文件是否正确
进入到 /etc/init.d/httpd restart 重启apache 服务器(不同的系统应该是不一样 要自己找到)

 

用于Tomcat
第一步

 

复制代码

代码如下:


if [ -z "$CATALINA_OUT" ] ; then
CATALINA_OUT="$CATALINA_BASE"/logs/catalina.out
fi


修改为  

复制代码

代码如下:


if [ -z "$CATALINA_OUT" ] ; then
CATALINA_OUT="$CATALINA_BASE"/logs/catalina.out.%Y-%m-%d
fi


第二步
将  

复制代码

代码如下:


touch "$CATALINA_OUT"


改为

复制代码

代码如下:


#touch "$CATALINA_OUT"


第三步

复制代码

代码如下:


org.apache.catalina.startup.Bootstrap "$@" start \
>> "$CATALINA_OUT" 2>&1 &


修改为  

复制代码

代码如下:


org.apache.catalina.startup.Bootstrap "$@" start 2>&1 \
| /usr/local/sbin/cronolog "$CATALINA_OUT" >> /dev/null &


重新启动 Tomcat 

复制代码

代码如下:


service tomcat restart


可以在 Tomcat 的 logs 目录底下找到以系统日期为结尾的 catalina.out.yyyy-mm-dd 的档案,这样子就成功了。  
后续就是持续观察看看是不是每天都有产生一个新的 catalina.out.yyyy-mm-dd 档案。然后再安排定期删除这些较旧的 log 檔即可。

延伸 · 阅读

精彩推荐
  • Linux将 Linux 终端与 Nautilus 文件管理器结合起来

    将 Linux 终端与 Nautilus 文件管理器结合起来

    Nautilus 是 GNOME 桌面环境中的图形化文件浏览器。你可以使用它来访问和管理系统中的文件和文件夹。 尽管并非所有人都喜欢使用终端来管理文件和目录,...

    未知812023-08-08
  • Linuxssh 登录很慢该如何解决

    ssh 登录很慢该如何解决

    这篇文章主要介绍了ssh 登录很慢该如何解决的相关资料,这里提供了两种方法,DNS反向解析及关闭ssh的gssapi认证的解决办法,需要的朋友可以参考下...

    linuxeye9922021-12-16
  • Linuxlinux top命令详解

    linux top命令详解

    这篇文章主要介绍了linux top命令详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    sparkdev5622022-03-01
  • LinuxLinux系统下无法卸载挂载的目录怎么办?

    Linux系统下无法卸载挂载的目录怎么办?

    我们在日常运维中经常性会遇到需要进行磁盘的扩容、卸载、挂载等操作,但是有时候这个系统上跑的应用并没有停止或者有其他的运维同事在操作这个目...

    今日头条10302020-12-30
  • Linux在Linux系统中创建新的亚马逊AWS访问密钥的方法

    在Linux系统中创建新的亚马逊AWS访问密钥的方法

    如何在Linux系统中创建新的亚马逊AWS访问密钥?我在配置一个需要访问我的亚马逊AWS帐号的应用时被要求提供AWS访问密钥ID和秘密访问密钥,我怎样创建一个...

    Linux教程网6182019-10-30
  • Linuxlinux驱动程序开发详细介绍

    linux驱动程序开发详细介绍

    前提,一般来说内核代码的错误可能会引起一个用户进程的死亡,或者整个系统的瘫痪,更严重的后果,可能导致磁盘损伤~因此建议最好有一台实验机进行...

    Linux教程网5392019-12-17
  • Linux理解 Linux/Unix 登录脚本的技巧

    理解 Linux/Unix 登录脚本的技巧

    有一些常见的情况,例如从Debian的包管理程序到Iaas的管理中,很多任务需要设置环境变量才能正常运行。 有时,程序通常只需要在 登陆时运行一次,例如...

    未知1042023-05-12
  • Linuxlinux设置tomcat自启动的方法

    linux设置tomcat自启动的方法

    这篇文章主要介绍了linux设置tomcat自启动的方法,需要的朋友可以参考下...

    Linux教程网8512021-10-10