menu LittleJake's Blog
color_lens
avatar
Jake Liu
Never Settle
creative commons by-nc-sa
hit
Category
keyboard_arrow_down

© 2024 LittleJake's Blog.

萌ICP备20223020号

生产服务器遇tmp文件夹占用过大

前言

日常例行巡检服务器的时候发现tmp文件夹占用空间极大,文件夹内部产生大量文件。

根据之前本人定位查明的原因,为某业务软件产生,具体产生原因没有源代码,所以无法排查。

根据命令lsof查看,未发现访问到tmp文件夹内的文件进程。

大致估计由于某个代码缺陷导致生成大量该文件,且未被读取使用(只写不读)。

处理

按照通用的做法:使用rm -rf /tmp/*命令,发现报错argument过长。

使用ls命令查看发现有大量文件,该命令也运行缓慢。

ls

针对该问题解决方法构思:

  1. 缩短tmp回收时间间隔;
  2. 立刻删除释放空间;

方法1

修改文件/usr/lib/tmpfiles.d/tmp.conf,将空间回收时间改为1d(1天),等待系统自动回收。

更多tmpfiles.d具体的解释,请运行man tmpfiles.d查看手册。

方法2

适用于critical状态的,空间已经占用满的情况。

众所周知,find命令可以查找文件,同时也提供了对应删除的flag参数。

注意:请勿使用类似 find /tmp/ -name "*" -exec rm -rf {} \ 命令,在文件数量多的情况下也会报参数过长;同时,该命令效率极其低下。

我们采用删除对应前缀的临时文件,执行 find /tmp/ -name "MediaBox*" -delete 命令即可。

后记

从百度查询的大部分都是误导性的使用find .. -exec rm -rf {} \ 命令来搜索删除文件,实际效率低下。

同时,大量文件使用通配符,然后 rm -rf 也是极其不现实。

少听信百度迷信(为了SEO不择手段,点名CSDN、腾讯云和阿里云污染搜索条目),多翻手册学习、查英文搜索才是真道理。

推荐网站:

  1. https://www.google.com/
  2. https://www.bing.com/
Buy me a beer
Jake Liu
Never Settle

Title: 生产服务器遇tmp文件夹占用过大

Author: Jake Liu

Origin:

Creative Commons License

This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) For any re-post you must give appropriate credit.

文章遵循CC许可 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 转载请注明出处

Tag:centos, tmp, tmpfiles, find, rm -rf, 临时文件

评论区

Add a new comment.

Theme