[转帖]自动清理_详解centos7和centos6系统的/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方面的内容,感兴趣的朋友可以关注下~
[转帖]自动清理_详解centos7和centos6系统的/tmp目录自动清理规则及区别的更多相关文章
- 终极优化_详解Win7旗舰版系统中可以关闭的服务
Win7旗舰版系统是一款功能强大的系统,不过对于很多用户很多功能却使用不上,而支持功能的很多服务也多少占用了系统资源,那么我们可以通过关闭一些不使用的服务来达到让win7系统运行速度加快的目的.下面小 ...
- CentOS7的/tmp目录自动清理规则
CentOS6以下系统(含)使用watchtmp + cron来实现定时清理临时文件的效果,这点在CentOS7发生了变化. 在CentOS7下,系统使用systemd管理易变与临时文件,与之相关的系 ...
- CentOS7的/tmp目录自动清理规则(转)
CentOS7的/tmp目录自动清理规则 CentOS6以下系统(含)使用watchtmp + cron来实现定时清理临时文件的效果,这点在CentOS7发生了变化,在CentOS7下,系统使用sys ...
- Linux系统下/tmp目录文件重启后自动删除,不重启自动删除10天前的/TMP的文件(转)
/tmp目录文件重启后自动删除现在知道有ubuntu和solaris系统source:http://blog.chinaunix.net/uid-26212859-id-3567875.html经常会 ...
- Linux下关于/tmp目录的清理规则
本文将介绍Linux下/tmp目录的清理规则,rhel6和rhel7将以完全不同的两种方式进行清理. RHEL6 tmpwatch命令 tmpwatch 是专门用于解决“删除 xxx天没有被访问/修改 ...
- MVC图片上传详解 IIS (安装SSL证书后) 实现 HTTP 自动跳转到 HTTPS C#中Enum用法小结 表达式目录树 “村长”教你测试用例 引用provinces.js的三级联动
MVC图片上传详解 MVC图片上传--控制器方法 新建一个控制器命名为File,定义一个Img方法 [HttpPost]public ActionResult Img(HttpPostedFile ...
- [转帖]【Oracle】详解Oracle中NLS_LANG变量的使用
[Oracle]详解Oracle中NLS_LANG变量的使用 https://www.cnblogs.com/HDK2016/p/6880560.html NLS_LANG=LANGUAGE_TERR ...
- shell-的特殊变量-进程状态变量$$ $! $? $_详解
一:shell的特殊变量-进程状态变量详解 1. 进程状态变量 $$ 获取当前shell的进程号(pid) $! 执行上一个指令的pid,上一个后台运行进程的进程号 $? 获取执行上一个指令的返回值 ...
- Spring注解_详解
@Autowired 注释 将 @Autowired 注释标注在成员变量上 import org.springframework.beans.factory.annotation.Autowire ...
- [转帖]Linux chattr 命令详解
Linux chattr 命令详解 https://www.cnblogs.com/ftl1012/p/chattr.html 常见命令参数 1 2 3 4 5 6 7 8 9 10 11 12 A: ...
随机推荐
- Spring表达式语言(SPEL)学习(02)
构造数组 /** * 数组生成 */ @Test public void test5(){ int[] numbers1 = (int[]) parser.parseExpression(" ...
- Programming Abstractions in C阅读笔记:p246-p247
<Programming Abstractions in C>学习第68天,p246-p247总结,总计2页. 一.技术总结 本章通过"the game of nim(尼姆游戏) ...
- [Python急救站]定时关机程序
收到朋友的请求,让我帮他做一个电脑关机程序,其实非常简单.代码如下: import tkinter as tk # 导入tkinter模块 from tkinter import ttk # 导入tt ...
- CodeForces 1307D BFS最短路 思维
原题链接 题意 给出一个简单无向图,边权全部为1,同时给我们k个特殊点,要求我们从这k个特殊点中选出两个来连一条边权为1的边.同时,我们的决策要保证1~n的最短路程最大,求最终这个最短路长度. 思路 ...
- Java 设置Excel页面背景
本文介绍通过Java 程序在Excel表格中设置页面背景的方法,可设置颜色背景(即指定单一颜色作为背景色).图片背景(即加载图片设置成页面背景).程序中需要使用免费版Excel类库工具 Free Sp ...
- C++篇:第一章_变量和常量_知识点大全
C++篇为本人学C++时所做笔记(特别是疑难杂点),全是硬货,虽然看着枯燥但会让你收益颇丰,可用作学习C++的一大利器 注意:C++篇为本人手动将Word文档修改成Markdown格式(因为网上修改的 ...
- 【玩转鲲鹏DevKit系列】何如快速迁移有源码应用
本文分享自华为云社区<[玩转鲲鹏DevKit系列]何如快速迁移有源码应用>,作者:华为云社区精选 . 源码(也称源程序)是程序员编写的计算机程序的文本形式,不同的编程语言有不同的语法和规则 ...
- MindSpore实践:对篮球运动员目标的检测
摘要:本文讲述的是MindSpore对篮球运动员目标的检测应用,通过AI技术辅助对篮球赛场进行分析. 本文分享自华为云社区<MindSpore大V博文系列:AI对篮球运动员目标的检测>,原 ...
- 揭露ROI提升5倍的秘密!火山引擎A/B测试白皮书重磅发布(内附下载链接)
- 文末立即下载白皮书原文 - 近期,<火山引擎A/B测试总体经济影响白皮书>正式发布.这份白皮书由市场研究公司Forrester调研撰写,揭示了A/B测试对于企业营收增长.运营成本.生 ...
- Axure 交互样式