所有的service报红但不报错_从一个应用报错来看centos系统的/tmp目录自动清理规则...
概述
分享最近应用碰到的一个奇怪bug,一开始以为是代码上的问题,找了一段时间发现居然是因为系统的一个自动清理规则导致,下面一起来看看吧~
一、应用报错:
logwire.core.exceptions.GeneralUnhandledException: 服务端未处理异常...Caused by: org.springframework.web.multipart.MultipartException: Failed to parse multipart servlet request; nested exception isjava.io.IOException: The temporary upload location [/tmp/tomcat.5454715517323162300.8031/work/Tomcat/localhost/ROOT] is not valid....Caused by: java.io.IOException: The temporary upload location [/tmp/tomcat.5454715517323162300.8031/work/Tomcat/localhost/ROOT] is not valid
报错截图:
二、思路
CentOS 7 系统有一个默认定时器会每隔 1 天执行一次临时目录清理操作,把 /tmp 目录下所有超过 10 天没有任何变动的子目录全部删除。
若某个 Logwire 系统的用户操作不太活跃,则 tomcat 运行临时目录(形如: /tmp/tomcat.xxx)会被删除。这时候如果有用户试图上传文件,则服务端会报错:
The temporary upload location [/tmp/tomcat.5454715517323162300.8031/work/Tomcat/localhost/ROOT] is not valid
三、处理过程
在 /usr/lib/tmpfiles.d/tmp.conf 文件中增加配置项:
x /tmp/tomcat*
以上配置表示在清理临时目录时忽略所有以 /tmp/tomcat 开头的目录和文件
四、CentOS系统的/tmp目录自动清理规则
1、CentOS 7
CentOS7下,系统使用systemd管理易变与临时文件,与之相关的系统服务有3个:
systemd-tmpfiles-setup.service :Create Volatile Files and Directoriessystemd-tmpfiles-setup-dev.service:Create static device nodes in /devsystemd-tmpfiles-clean.service :Cleanup of Temporary Directories
相关的配置文件也有3个地方:
/etc/tmpfiles.d/*.conf/run/tmpfiles.d/*.conf/usr/lib/tmpfiles.d/*.conf
/tmp目录的清理规则主要取决于/usr/lib/tmpfiles.d/tmp.conf文件的设定,默认配置有:
# This file is part of systemd.## systemd is free software; you can redistribute it and/or modify it# under the terms of the GNU Lesser General Public License as published by# the Free Software Foundation; either version 2.1 of the License, or# (at your option) any later version. # See tmpfiles.d(5) for details # Clear tmp directories separately, to make them easier to overridev /tmp 1777 root root 10d # 清理/tmp下10天前的目录和文件v /var/tmp 1777 root root 30d # 清理/var/tmp下30天前的目录和文件 # Exclude namespace mountpoints created with PrivateTmp=yesx /tmp/systemd-private-%b-*X /tmp/systemd-private-%b-*/tmpx /var/tmp/systemd-private-%b-*X /var/tmp/systemd-private-%b-*/tmp
也就是CentOS 7 系统有一个默认定时器会每隔 1 天执行一次临时目录清理操作,把 /tmp 目录下所有超过 10 天没有任何变动的子目录全部删除。
可以配置这个文件,比如你不想让系统自动清理/tmp下以tomcat开头的目录,那么增加下面这条内容到配置文件中即可:
x /tmp/tomcat.*
2、CentOS 6
CentOS6以下系统(含)使用watchtmp + cron来实现定时清理临时文件的效果,该目录下的脚本每天执行一次。
如果要修改的话,可以修改此 tmpwatch 脚本(用 root 用户修改或其他用户 sudo 修改):
找到类似该语句:
/usr/sbin/tmpwatch "$flags" -x /tmp/.X11-unix -x /tmp/.XIM-unix -x /tmp/.font-unix -x /tmp/.ICE-unix -x /tmp/.Test-unix -X '/tmp/hsperfdata_*' -X '/tmp/.hdb*lock' -X '/tmp/.sapstartsrv*.log' 10d /tmp
为该语句添加 -X '/tmp/tomcat*' 参数,以便在清除时忽略所有以 /tmp/tomcat 开头的目录和文件:
/usr/sbin/tmpwatch "$flags" -x /tmp/.X11-unix -x /tmp/.XIM-unix -x /tmp/.font-unix -x /tmp/.ICE-unix -x /tmp/.Test-unix -X '/tmp/hsperfdata_*' -X '/tmp/.hdb*lock' -X '/tmp/.sapstartsrv*.log' -X '/tmp/tomcat*' 10d /tmp
觉得有用的朋友多帮忙转发哦!后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注下~
所有的service报红但不报错_从一个应用报错来看centos系统的/tmp目录自动清理规则...相关推荐
- java override报红_Eclipse @override报错解决
第一种解决方案: @Override是JDK5 就已经有了,但有个小小的Bug,就是不支持对接口的实现,认为这不是Override 而JDK6 修正了这个Bug,无论是对父类的方法覆盖还是对接口的实现 ...
- java cell报错_有一个小小点问题,现在我想从eclipse上读取Excel表
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 有一个小小点问题,现在我想从eclipse上读取Excel表,但是sheet的方法getcell报错,请问这是哪儿的错呢?谢谢 源码及报错图片如下: pa ...
- springboot @value启动报错_打造一个 Spring Boot 注解启动控制开关
# 场景说明 https://gitee.com/baomidou/jobs jobs 分布式任务调度组件 , 任务调度中心启动注解 EnableJobsAdmin 默认注解上某个配置类对应 st ...
- 仍然报错_only_full_group_by配置,竟让所有应用报错?
推荐学习 周一福利到!献上"独家全新"MySQL进阶套餐,简直就是血赚 全网独家的"MySQL高级知识"集合,骨灰级收藏,手慢则无 1. 踩坑经历 一个很平常的 ...
- 安装python报错_安装python包时报错
pip install numpy 时 报错: Traceback (most recent call last): File "d:\学习\python\python-3.6.5\lib\ ...
- android edittext报错,Android中editText使用报错
在activity_main.xml文件中添加了editText控件 android:id="@+id/edit_text" android:hint="@the nex ...
- dependency报红_解决IDEA中Maven依赖包导入失败报红问题(总结最有效8种解决方案)...
问题描述: 真的,说来话长,这应该是我花最多时间去解决关于Maven依赖包导入的问题,以前粘贴复制导入,自动下载成功了, 这次怎么搞,怎么让他自动下载都还是红红的一片, 花了大半天,各种尝试,只为搏得 ...
- ServiceImpl或者Service引入mapper报红解决办法
ServiceImpl或者Service引入mapper报红解决办法 在IntelliJ IDEA编码时,使用ServiceImpl或者Service引入mapper报红, 提示: Could not ...
- IntelliJ IDEA 学习笔记 - @Autowired 报红波浪线
IntelliJ IDEA 学习笔记 - @Autowired 报红波浪线 情况一: 属性注入 情况二: 构造注入 最终效果 自欺欺人解决方案 方案1. 换 `@Resource` (这个我爱用) 方 ...
最新文章
- 900万张标注图像,谷歌发布Open Images最新V3版
- javascript 构造函数类和原型 prototyp e定义的属性和方法的区别
- 海生《我不是你的玩偶》关注颇高
- target与currentTarget的区别?
- matlab labs,DOCOMO Beijing Labs 借助 MATLAB 将移动通信技术的开发时间缩短 50%
- 【职场】遇到了个失业开滴滴的程序员
- 面向对象上机题-迭归算法
- iphone备忘录突然没了_苹果突然下架12 天猫:双11有惊喜!iPhone12 mini配色缩水
- 【Docker】Asp.net core在docker容器中的端口问题
- 20140625 程序 进程 线程 物理存储器
- [转] css3变形属性transform
- mysql将一个表的字段更新到另一个表中
- 【数据库系统原理】实体-联系模型
- uva 11916 Emoogle Grid (BSGS)
- 四、公文流转的基本过程
- 双机热备的概念双机热备的概念
- ArcGIS 分类标注
- 国内外技术论坛的区别
- 管理经济分析05:并购、价格歧视、四个市场、招标与拍卖
- 2019-2020 10th BSUIR Open Programming Championship. Semifinal 补题
热门文章
- 超详细 | 21张图带你领略集合的线程不安全
- Aruba 推出Instant On 为中小型企业提供安全、高速的无线连接
- 成立一周?谷歌人工智能道德委员会解散了?近日,金山云和小米刚签订了不超过9000万的硬件产品供应协议,闹哪样? | 极客头条...
- vue 前期准备,项目结构
- 用imspost制作catia后处理_这些有趣又精致的模型,都是用3D打印机打印出来的
- larvel php restful_laravel 实现一个简单的 RESTful API
- delphi7 如何判定dbgrid两行重复_教你如何在服装上加入好看的毛线刺绣花边
- 使用MAT工具分析内存溢出
- mybatis 插入数据后返回自增id
- SLF4JLogFactory does not implement org.apache.commons.logging.LogFactory