如何实现Linux tmp目录自动清理

系统 Linux 系统运维
在Linux系统中/tmp文件夹下的文件是会被清理、删除的,文件清理的规则是如何设定的呢?下面就为大家具体总结一下。

在Linux系统中/tmp文件夹下的文件是会被清理、删除的,文件清理的规则是如何设定的呢? 以Redhat为例,这个主要是因为作业里面会调用tmpwatch命令删除那些一段时间没有访问的文件。

那么什么是tmpwatch呢?其实tmpwatch是一个命令或者说是一个包。如下所示

tmpwatch - removes files which haven’t been accessed for a period of time 
 
[root@DB-Server ~]# rpm -qa | grep tmpwatch 
 
tmpwatch-2.9.7-1.1.el5.5 
 
[root@DB-Server ~]# whereis tmpwatch 
 
tmpwatch: /usr/sbin/tmpwatch /usr/share/man/man8/tmpwatch.8.gz 
 
[root@DB-Server ~]# file /usr/sbin/tmpwatch 
 
/usr/sbin/tmpwatch: ELF 64-bit LSB executable, AMD x86-64, version 1 (SYSV), for GNU/Linux 2.6.9, dynamically linked (uses shared libs), for GNU/Linux 2.6.9, stripped 
 
[root@DB-Server ~]# 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.

`

关于tmpwatch命令的参数,不同版本可能有所不同,下面以Red Hat Enterprise Linux Server release 5.7下TMPWATCH(8)为列

作用:

删除一段时间没有被访问的文件。

参数:

-u 按照文件的***access时间,即***访问时间为参考。默认选项。可通过ls -lu查看。

-m 按照文件的***modified时间,即***修改时间为参考。可通过ls -l查看。

-c 按照文件的-ctime时间做参考,ctime更新的条件为写入、更改属主、权限。可通过ls -lc查看。

-M 按照目录的修改时间来删除目录而不是访问时间。

-a 删除所有类型文件。包括目录和symbolic links

-d --nodirs 排除目录文件,即使是空目录。

-d --nosysmlinks 排除symbolic links类型文件。

-f 强制删除那些root没有写权限的文件。比如root的readonly文件

-q 只报告错误信息。

-x /PATH 排除特定目录,即不删除该子目录里的文件。

-U user_name 排除属于特定用户的文件,即不删除该用户的文件。

-v 显示删除过程。默认是不显示删除了什么文件,直接删除的。

-t 用于测试,并不真正删除文件,能显示出要删除文件的过程。

-d 不删除文件里的子目录,但是子目录里面的文件还是会被删除。

参数后加时间,默认是hours。也可以使用30d表示30天,但是有些版本只支持hours。 时间后是要检查的目录。可以多个目录用空格分开。如下所示表示720小小时~=30天。

[root@DB-Server ~]# more /etc/cron.daily/tmpwatch 
 
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_*' 240 /tmp 
 
/usr/sbin/tmpwatch "$flags" 720 /var/tmp 
 
for d in /var/{cache/man,catman}/{cat?,X11R6/cat?,local/cat?}; do 
 
if [ -d "$d" ]; then 
 
/usr/sbin/tmpwatch "$flags" -f 720 "$d" 
 
fi 
 
done 
 
[root@DB-Server ~]# 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.

如果你想将强制删除30天没有访问的文件改为7天,只需"/usr/sbin/tmpwatch "$flags" 720 /var/tmp"和"/usr/sbin/tmpwatch "$flags" -f 720 "$d" 里面的720改为189即可。

责任编辑:武晓燕 来源: 博客园
相关推荐

2014-02-20 13:01:23

Linux目录文件

2019-10-14 11:20:27

centos7Centos 6tmp

2021-12-23 15:05:46

Redis内存Java

2013-04-15 15:07:43

清理日志Linux系统

2023-05-20 17:48:39

Linux/tmp/var/tmp

2021-03-11 10:48:33

机器学习数据清理

2012-03-20 14:17:33

活动目录

2022-02-24 16:48:53

SnapLinux

2018-09-30 10:18:44

Linux 文件系统目录

2020-08-12 06:59:44

Linux切换目录命令

2012-09-20 15:00:38

Win 8操作系统

2017-09-04 09:38:49

Linux开机启动项清理

2011-01-13 14:54:41

Linux文件清理

2010-05-31 14:32:44

SVN自动同步

2019-07-25 18:57:36

Linux数据库自动备份

2019-09-19 11:52:59

Linux脚本语言Vim

2011-05-16 11:29:00

MySQL自动备份

2017-12-06 10:50:50

Linux自动唤醒系统运行时间

2018-06-07 09:22:16

LinuxMysql备份

2020-04-23 08:55:01

LinuxGradle工具
点赞
收藏

51CTO技术栈公众号