Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >笔记-系统突然无法写入某个文件异常

笔记-系统突然无法写入某个文件异常

作者头像
louiezhou001
发布于 2021-12-10 09:25:59
发布于 2021-12-10 09:25:59
1.1K00
代码可运行
举报
运行总次数:0
代码可运行

今天一早来公司使用系统, 突然报异常, 提示某个文件不能写入了,这是....什么情况?原先就已经分配过文件写入权限了。

赶紧上CentOS Server上查下情况:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[zhou@mydata ~]$ df -l
Filesystem     1K-blocks     Used Available Use% Mounted on
/dev/xvda1      20641404 10565932   9026948  54% /
tmpfs            4029028        0   4029028   0% /dev/shm
/dev/xvdb1     103210940 67011820  30956312  97% /hotdata

原来是磁盘空间满了, 经过一番查阅, 发现日志系统文件占用了好几个G的空间,日志包含Nginx 和 Tomcat logs

du -h --max-depth=1:查看该目录空间占用

du -sh *:查看该目录下所有文件及目录的大小

在tomcat目录下conf/logging.properties 这个文件控制tomcat自带的各种日志文件(安装目录/logs目录下的日志文件),这些文件的配置和管理会影响tomcat日常运行过程中对内存的消耗。

先来看看这个conf/logging.properties 文件:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[zhou@izbplay.. conf]$ cat logging.properties
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

handlers = 1catalina.org.apache.juli.AsyncFileHandler, 2localhost.org.apache.jul                                                                i.AsyncFileHandler, 3manager.org.apache.juli.AsyncFileHandler, 4host-manager.org                                                                .apache.juli.AsyncFileHandler, java.util.logging.ConsoleHandler

.handlers = 1catalina.org.apache.juli.AsyncFileHandler, java.util.logging.Consol                                                                eHandler

############################################################
# Handler specific properties.
# Describes specific configuration info for Handlers.
############################################################

1catalina.org.apache.juli.AsyncFileHandler.level = FINE
1catalina.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
1catalina.org.apache.juli.AsyncFileHandler.prefix = catalina.
1catalina.org.apache.juli.AsyncFileHandler.maxDays = 90
1catalina.org.apache.juli.AsyncFileHandler.encoding = UTF-8

2localhost.org.apache.juli.AsyncFileHandler.level = FINE
2localhost.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
2localhost.org.apache.juli.AsyncFileHandler.prefix = localhost.
2localhost.org.apache.juli.AsyncFileHandler.maxDays = 90
2localhost.org.apache.juli.AsyncFileHandler.encoding = UTF-8

3manager.org.apache.juli.AsyncFileHandler.level = FINE
3manager.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
3manager.org.apache.juli.AsyncFileHandler.prefix = manager.
3manager.org.apache.juli.AsyncFileHandler.maxDays = 90
3manager.org.apache.juli.AsyncFileHandler.encoding = UTF-8

4host-manager.org.apache.juli.AsyncFileHandler.level = FINE
4host-manager.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
4host-manager.org.apache.juli.AsyncFileHandler.prefix = host-manager.
4host-manager.org.apache.juli.AsyncFileHandler.maxDays = 90
4host-manager.org.apache.juli.AsyncFileHandler.encoding = UTF-8

java.util.logging.ConsoleHandler.level = FINE
java.util.logging.ConsoleHandler.formatter = org.apache.juli.OneLineFormatter
java.util.logging.ConsoleHandler.encoding = UTF-8


############################################################
# Facility specific properties.
# Provides extra control for each logger.
############################################################

org.apache.catalina.core.ContainerBase.[Catalina].[localhost].level = INFO
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].handlers = 2localh                                                                ost.org.apache.juli.AsyncFileHandler

org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].level =                                                                 INFO
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].handler                                                                s = 3manager.org.apache.juli.AsyncFileHandler

org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].le                                                                vel = INFO
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].ha                                                                ndlers = 4host-manager.org.apache.juli.AsyncFileHandler

# For example, set the org.apache.catalina.util.LifecycleBase logger to log
# each component that extends LifecycleBase changing state:
#org.apache.catalina.util.LifecycleBase.level = FINE

# To see debug messages in TldLocationsCache, uncomment the following line:
#org.apache.jasper.compiler.TldLocationsCache.level = FINE

# To see debug messages for HTTP/2 handling, uncomment the following line:
#org.apache.coyote.http2.level = FINE

# To see debug messages for WebSocket handling, uncomment the following line:
#org.apache.tomcat.websocket.level = FINE

从这里可以看出它实际控制着tomcat 安装目录下/logs里面的五类日志 :catalina、localhost、manager、admin、host-manager 。

另外,tomcat 的日志等级有:日志输出级别:SEVERE (最高级别) > WARNING > INFO > CONFIG > FINE > FINER(精心) > FINEST (所有内容,最低级别),使用日志输出级别越高那么tomcat对内存的消耗就越低,但是具体的级别选择需要根据你自己的情况来定。

将日志清理后, 同时调整日志级别, 系统恢复正常运行。

总结:

测试是一门技术, 更是一门艺术. 也许你今天拥有的技术, 明天就会被淘汰. 同时需要我们开拓思维和眼界, 积极拥抱变化, 学习新知识, 新方法,新技能, 计算机领域讲究的是实践, 学习更要讲究方式方法. 学习和动手一定要结合, 光看不练,犹如看武功秘籍, 是永远成不了武功大侠的.

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-12-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 测试工程师成长之道 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
logback的日志配置文件
部署运行后发现,在Linux下面 tomcat的日志文件catalina.out增长速度很快,造成愈来愈大;
JQ实验室
2022/02/09
3830
IDEA中使用tomcat9时出现乱码解决方法
1、修改IDEA中setting的设置Editor——File Encodings
cn華少
2021/07/21
9740
Linux下Tomcat 8 常用命令和优化
可能shutdown.sh 无法停止 tomcat,可以修改其配置 修改shutdown.sh的最后这一行
程裕强
2022/05/06
8400
配置catalina.out的日志格式[通俗易懂]
启动 Tomcat 时, catalina.out 中输出的日志格式可能不太理想。
全栈程序员站长
2022/08/25
1.6K0
Tomcat日志管理(一)[通俗易懂]
由于 JDK 自带的  java.util.logging实现提供的日志管理能力极为有限,不支持应用级别日志管理。因此,Tomcat 默认的日志库对java.util.logging API 进行了重新实现,这些实现被称为  “JULI” ,里面包含了一些特有的定制类,其中最重要的是一个自定义的LogManager类,它能够区别出运行在 Tomcat 容器中的多个不同的Web应用以及它们的类加载器,从而可以支持不同的应用使用各自独立的日志配置。 你可以从 Tomcat 全局和 Web 应用两个层面对 Tomcat 默认的JULI进行日志配置:
全栈程序员站长
2022/08/31
1.1K0
tomcat下的日志配置详细说明
#可配置项(5类日志):catalina、localhost、manager、admin、host-manager handlers = 1catalina.org.apache.juli.FileHandler, 2localhost.org.apache.juli.FileHandler, 3manager.org.apache.juli.FileHandler, 4host-manager.org.apache.juli.FileHandler, java.util.logging.Conso
业余草
2019/01/21
1.7K0
解决Tomcat中文乱码问题——windows平台
这是因为tomcat默认编码是UTF-8,但是windows默认的编码格式是GBK,不匹配,所以我们改一下就行了。
红目香薰
2022/11/30
7.7K0
解决Tomcat中文乱码问题——windows平台
tomcat日志详解[通俗易懂]
tomcat有五类日志:catalina、localhost、manager、admin、host-manager
全栈程序员站长
2022/08/31
3.9K0
Tomcat日志系统详解
综合:Tomcat下相关的日志文件 Cataline引擎的日志文件,文件名catalina.日期.log Tomcat下内部代码丢出的日志,文件名localhost.日期.log(jsp页面内部错误的异常,org.apache.jasper.runtime.HttpJspBase.service类丢出的,日志信息就在该文件!) Tomcat下默认manager应用日志,文件名manager.日期.log 控制台输出的日志,Linux下默认重定向到catalina.out Access日志(Servlet.xml配置) 应用程序通过log4j.properties:${catalina.base}/logs/probe.log重定向过来的日志 JULI:org.apache.juli.FileHandler对应的日志文件名:{prefix}.{date}.{suffix} 默认juli.日期.log Tomcat下Web应用程序可以使用如下3种日志: 使用JDK提供的日志java.util.logging. 使用Java Servlets规范中定义的日志javax.servlet.ServletContext.log(...) 使用其他日志框架,如log4j 不同Web应用程序下使用的Servlet日志(或者日志框架提供的日志)是相互独立的(这与Tomcat的class loader有关,参考Class Loader HOW-TO )。如果Web应用程序使用的是java.util.logging日志,那么它们并不相互独立,这是因为java.util.logging是由JAVA系统中的Bootstrap ClassLoader来加载的,因此它在各Web应用程序之间是共享的! Tomcat使用的日志配置文件:$CATALINA_BASE/conf/logging.properties Tomcat日志管理类默认使用的是JULI:LOGGING_MANAGER="-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager" Java的stdout and stderr会被重定向到$CATALINA_BASE/logs/catalina.out,同时:下面2种类型的错误信息,也会被记录在这里 Uncaught exceptions printed by java.lang.ThreadGroup.uncaughtException(.. Thread dumps, if you requested them via a system signal Access访问日志:它与一般的日志有关系但不太一样,它在Servlet.xml中的Context或者 Host或者Engine中配置。在上述的配置节中增加下述的Value就行,具体参考:The Valve Component Xml代码 <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log." suffix=".logs" pattern="common" resolveHosts="false"/> Tomcat默认使用JULI日志系统(可以参考官网文档修改成使用log4j),它是对默认的JDK日志java.util.logging进行一定的封装,和标准JDK日志支持相同的配置。最大的不同是针对不同的classloader,可以使用不同的配置文件,使得tomcat下不同的Web应用程序可以使用各自独立的日志文件。也就是说,Tomcat下的默认日志有如下2个层次: 全局配置文件. That is usually done in the ${catalina.base}/conf/logging.properties file. The file is specified by the java.util.logging.config.file System property which is set by the startup scripts. If it is not readable or is not configured, the default is to use the ${java.home}/lib/logging.properties file in the JRE. Web应用程序中使用WEB-INF/classes/logging.properties 默认的JRE中的logging.properties会
菲宇
2019/06/13
3.1K0
Tomcat日志系统详解
如何使用Tomcat自带的日志实现tomcat-juli.jar
Tomcat自带的日志实现是tomcat-juli.jar,它是对默认的JDK日志java.util.logging进行一定的封装,和标准JDK日志支持相同的配置,但是和log4j等常用的日志框架比起来功能要较为简陋。但是tomcat-juli可以针对不同的classloader来使用不同的配置文件,使得tomcat下不同的Web应用程序可以使用各自独立的日志文件。
雨临Lewis
2022/01/11
1.1K0
解决idea的控制台输出Tomcat日志乱码问题「建议收藏」
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/09
8.7K0
解决idea的控制台输出Tomcat日志乱码问题「建议收藏」
tomcat 8.5.9.0 解决catalina.out过大的问题
先吐嘈一下tomcat这个项目,日志切割这么常见的功能,tomcat这种知名开源项目默认居然不开启,生产环境跑不了几天,磁盘就满了,而且很多网上流传的方法,比如修改conf/logging.properties文件,将级别设置成OFF,我试了好象并不管用(tomcat 8.5.9.0版本 + centos 6.5 + jdk1.8环境) 正确姿势: 1、下载 https://mirrors.tuna.tsinghua.edu.cn/apache/logging/log4j/1.2.17/log4j-1.2.
菩提树下的杨过
2018/01/18
2K0
Tomcat常见问题合集记录
解决方法:在Tomcat里的bin中的setclasspath.bat或者setclasspath.sh开头添加设置环境变量;
全栈工程师修炼指南
2022/09/29
1K0
spingboot tomcat 报错 One or more listeners failed to start. Full details will be found in the appr...
在src/main/reousrces/ 下添加文件 logging.properties,内容如下:
飞奔去旅行
2019/10/12
2.7K0
tomcat报错One or more listeners failed to start.
今天真是找报错的一天,就是因为使用maven搭建springmvc工程,实在是太累了,之前报错tomcat找不到servlet是因为没有勾选源文件,这里勾选后,继续报错:
废江_小江
2022/09/05
2.6K0
tomcat报错One or more listeners failed to start.
Error filterStart的问题
可以在项目的 WEB-INF/classes目录下新建一个文件叫logging.properties
全栈程序员站长
2022/09/07
2350
kubernetes集群之微服务tomcat服务
Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。
王先森sec
2023/04/24
3590
kubernetes集群之微服务tomcat服务
Tomcat日志切割总结[通俗易懂]
我们都知道将一个项目部署到Tomcat之后,Tomcat服务启动后的标准输出(stdout)和标准出错(stderr)都会默认重定向到${TOMCAT_HOME}/logs/catalina.out这个文件中,有时候短短一会儿这个文件就能达到几十兆甚至上百兆,日积月累这个文件如果不及时清理将会占用服务器磁盘大量空间从而影响到整个项目的正常运行; 再者这样大日志文件对于我们进行错误排查以及日志分析都不是很方便,一次打开也花上好几分钟,直接cat命令查看也要滚掉好多屏,并且那时候想要来切割的话又异常麻烦。 所以,现在我们提前做好用日期来分割日志的配置,即Tomcat运行的每天都按照日期命名新建一个日志文件。
全栈程序员站长
2022/08/31
2.4K0
深入拆解Tomcat和Jetty之通用组件
每一个系统都有一些通用的模块,比如日志模块、异常处理模块、工具类等,对于 Tomcat 来说,比较重要的通用模块有日志、Session 管理和集群管理。从今天开始我会分三期来介绍通用模块,今天这一期先来讲日志模块。
yuanshuai
2022/08/22
5400
深入拆解Tomcat和Jetty之通用组件
spring整合各种中间件(RocketMQ、kafka、RabbitMQ、TubeMQ、NSQ)-腾讯开源【TubeMQ】
上文:spring整合各种中间件(RocketMQ、kafka、RabbitMQ、ActiveMQ、ZeroMQ)-ZeroMQ
逍遥壮士
2021/05/24
8450
spring整合各种中间件(RocketMQ、kafka、RabbitMQ、TubeMQ、NSQ)-腾讯开源【TubeMQ】
相关推荐
logback的日志配置文件
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验