这篇文章上次修改于 498 天前,可能其部分内容已经发生变化,如有疑问可询问作者。

Linux操作系统的/tmp目录保存临时文件,那么这个目录下的临时文件究竟会保存多久,何时被清理,通过什么方式(哪个服务)来维护清理工作呢?

手工清理

清理 /tmp 目录文件最简单和直接的方式是使用脚本命令清理N天前的临时文件(如果空间不足的话)find /tmp -type f -mtime +5 -exec rm -f {} \;清理5天前的文件。如果有程序不断写入/tmp目录下,则需要做轮转,这样才能使得文件的mtime保持确定时间,达到一定时间(如5天)被清理。

这个方法是应急处理,对于各个Linux发行版本,都有各自维护/tmp目录的设置方法

Red Hat / CentOS 和 tmpwatch

RHEL/CentOS 6使用tmpwatch维护临时文件删除

CentOS 6有一个tmpwatch默认会根据文件的最后访问时间atime来删除文件(不是根据mtime)。查看文件的atime可以通过 ls -u 来检查。

/etc/cron.daily/tmpwatch 脚本每天运行进行文件清理#! /bin/sh

flags=-umc

/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_*' 10d /tmp

/usr/sbin/tmpwatch "$flags" 30d /var/tmp

for d in /var/{cache/man,catman}/{cat?,X11R6/cat?,local/cat?}; do

if [ -d "$d" ]; then

/usr/sbin/tmpwatch "$flags" -f 30d "$d"

fi

done

可以看到这个脚本默认保留 /tmp 目录下10天的文件,以及/var/tmp目录下30天文件;以及/var/{cache/man,catman}目录下30天文件。

参数:-u 根据atime决定删除文件

-m 根据mtime决定删除文件

-c 根据ctime决定删促文件

当同时结合使用 -umc 则表示是否删除文件取决于这3个时间点最大值。

RHEL/CentOS 7使用systemd-tmpfiles-clean.timer服务维护临时文件删除

在 RHEL/CentOS 7种,有一个每日运行的systemd target称为 systemd-tmpfiles-clean.timer ,这是用来替代/etc/cron.daily/tmpwatch的。默认值是OnBootSec=15min

OnUnitActiveSec=1d

检查:sudo systemctl status systemd-tmpfiles-clean.timer

输出提示● systemd-tmpfiles-clean.timer - Daily Cleanup of Temporary Directories

Loaded: loaded (/usr/lib/systemd/system/systemd-tmpfiles-clean.timer; static; vendor preset: disabled)

Active: active (waiting) since Fri 2016-07-29 10:17:19 CST; 2 months 1 days ago

Docs: man:tmpfiles.d(5)

man:systemd-tmpfiles(8)

可以使用如下命令检查sudo journalctl -u systemd-tmpfiles-clean由于没有定义时间,所以对于大型集群,这个清理时间是不固定的,这样整个集群清理时间可以错开。

在 /usr/lib/tmpfiles.d/tmp.conf 配置文件中定义了 systemd-tmpfiles-clean.service 的配置,注意其中会避开一些使用PrivateTmp=yes创建的名字空间挂载点:# Clear tmp directories separately, to make them easier to override

v /tmp 1777 root root 10d

v /var/tmp 1777 root root 30d

# Exclude namespace mountpoints created with PrivateTmp=yes

x /tmp/systemd-private-%b-*

X /tmp/systemd-private-%b-*/tmp

x /var/tmp/systemd-private-%b-*

X /var/tmp/systemd-private-%b-*/tmp可以看到对于/tmp目录,默认配置也是保留10天文件

按日轮转日志

对于/tmp目录下的日志文件可以通过自己简单的脚本进行轮转 - 思路:脚本在执行日志生成前,对比当前时间和文件的更改时间,如果跨日期(0点),则会出现当前时间的日期比文件上一次更改时间戳日

参考

linux定时清理临时目录,tmp临时文件目录自动清理相关推荐

  1. Linux临时目录/tmp(mktemp命令、mktemp指令)(mktemp -d)临时目录清理服务systemd-tmpfiles-clean.service

    文章目录 mktemp -d linux为什么要设置这个临时目录`/tmp` 临时目录`/tmp`的定时清理 示例:查看ubuntu20.04系统下的临时目录定时清理服务 mktemp -d mkte ...

  2. linux生成日志文件,linux实现按天生成日志文件并自动清理

    linux实现按天生成日志文件并自动清理 前篇文章中讲到如何在Linux crontab创建每秒执行的方法,高人可能早意识到日志文件没做处理,假如没人工处理久了日后越来越大肯定会出现问题,当然人工处理 ...

  3. linux日志自动按天保存,linux实现按天生成日志文件并自动清理

    linux实现按天生成日志文件并自动清理 前篇文章中讲到如何在Linux crontab创建每秒执行的方法,高人可能早意识到日志文件没做处理,假如没人工处理久了日后越来越大肯定会出现问题,当然人工处理 ...

  4. Linux/Centos Tomcat 配置日志切分以及脚本自动清理

    Tomcat是Apache软件基金会(Apache Software Foundation)的Jakarta项目中的一个核心项目,由Apache,Sun和其他一些公司及个人共同开发而成.由于有了Sun ...

  5. shell 创建临时目录和临时文件mktemp

    #!/bin/bash mktemp_local() {     tempfile=`mktemp temp.XXXXXX`                   #文件名格式 file.XXXXXX  ...

  6. Python编程基础 - 使用临时文件和临时目录

    Python编程基础 - 使用临时文件和临时目录 李俊才 CSDN博客:jcLee1995 291148484@163.com [导读]:本文先介绍了什么是临时文件,然后围绕Python内建模块Tem ...

  7. linux自动清理磁盘日志的一种方案

    文章目录 一. 起因 二. 方案 三.代码 四. 执行 一. 起因 集群环境,挂载到/目录下的磁盘空间普遍较小. 即使在有监控的情况下,也很容易出现磁盘空间占用过高. 甚至磁盘写满导致节点故障的场景: ...

  8. Linux的文件和目录管理

    目录 Linux的文件和目录管理 增加文件目录 删除文件目录 查看文件目录 显示文件内容 拷贝移动文件目录 文件目录权限 修改文件目录文件 编写文件 系统结构 查找文件 更多源代码请参考我的[ Git ...

  9. linux下安装数据库提示/tmp空间不足解决办法

    出现问题情况:安装数据库时,会使用到临时目录/tmp,但是/tmp太小时会报错,如下图所示 解决办法:需要重新分配/tmp目录大小 在root用户下执行 1.vim /etc/fstab 加入一行 t ...

最新文章

  1. 消息中间件系列第2讲:如何进行消息队列选型?
  2. Java EE---通过Spring JDBC实现数据库的增、删、改、查
  3. 【C语言】局部变量、全局变量,局部静态变量,全局静态变量,extern,static的区别...
  4. [20170315]数据类型interval day to second
  5. ubuntu 20.04 阿里源_Ubuntu 18.04 安装CUDA 更新内核源出错解决方案
  6. linux 文档操作,Linux学习之文档操作
  7. React事件绑定几种方法测试
  8. 腾讯3轮面试都问了Android事件分发,原理+实战+视频+源码
  9. C++知识整理 内存模型和命名空间
  10. 西电Pintos操作系统课程设计 实验三
  11. 关于win10无法正常关机
  12. MongoDB极简实践入门
  13. Opengl实例7:glm(0.9.8.5)库 +矩阵旋转+课后作业
  14. 怎么把word文档免费转换成pdf文件
  15. 计算机页面里的坚果云删不了怎么回事,坚果云如何卸载?卸载坚果云的几种方法...
  16. phpspreadsheet 中文文档(七)技巧和诀窍
  17. 32 位 ARM® Cortex®-M0+内核 单片机
  18. 五轴数控转台_RTCP、一次装夹、双转台……这是一份五轴应用说明书
  19. 怎么html让元素脱离文档流,子元素设置绝对定位之后脱离文档流!
  20. void *指针是什么含义

热门文章

  1. 巴比特 | 元宇宙每日必读:企业需要具备哪些资质才能开展NFT相关业务?
  2. iOS开发-ZFPlayer的简单使用 播放单个网络视频
  3. 如何将ipad作为电脑的第二显示屏
  4. WPF遍历视觉树与逻辑树
  5. ios objective-c将base64位编码字符串转换成图片
  6. 【剑指offer】一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
  7. x264 i_thead
  8. Git将分支代码合并到主干/将主干代码合并到分支
  9. leetcode刷题技巧
  10. double cbrt(double x)