在CentOS 7系统中,临时目录(/tmp)的清理策略是通过systemd-tmpfile服务来实现的。以下是对CentOS 7临时目录清理策略和相关配置的详细介绍:
清理机制
从CentOS/RHEL 7开始,systemd-tmpfile服务被用于周期性清理/tmp目录。该服务的配置文件位于/usr/lib/tmpfiles.d/tmp.conf。
相关服务和配置文件
在CentOS 7下,与临时文件管理相关的系统服务有三个:
systemd-tmpfiles-setup.service:创建易变文件和目录。systemd-tmpfiles-setup-dev.service:在/dev中创建静态设备节点。systemd-tmpfiles-clean.service:清理临时目录。
对应的配置文件也有三个位置:/etc/tmpfiles.d/.conf/run/tmpfiles.d/.conf/usr/lib/tmpfiles.d/.conf
其中,/tmp目录的清理规则主要取决于/usr/lib/tmpfiles.d/tmp.conf文件的设定。
默认配置
默认情况下,/usr/lib/tmpfiles.d/tmp.conf文件的配置如下:
v /tmp 1777 root root 10d
v /var/tmp 1777 root root 30d
这表示/tmp目录下10天前的目录和文件将被清理,而/var/tmp目录下30天前的目录和文件将被清理。
自定义配置
如果需要自定义清理规则,可以修改/usr/lib/tmpfiles.d/tmp.conf文件。例如,如果不希望系统自动清理/tmp下以tomcat开头的目录,可以在配置文件中增加相应的排除规则。
总结
CentOS 7的/tmp目录清理策略通过systemd-tmpfile服务实现,其配置文件位于/usr/lib/tmpfiles.d/tmp.conf。默认配置会清理10天前的/tmp目录内容和30天前的/var/tmp目录内容。管理员可以根据需要修改此配置文件以定制清理规则。
在CentOS 7中,清理文件的类型配置是通过systemd-tmpfiles服务来管理的,特别是通过/usr/lib/tmpfiles.d/tmp.conf配置文件。以下是如何配置清理文件类型的详细说明:
配置文件概述
tmp.conf文件定义了如何处理不同类型的临时文件和目录。该文件包含了多个清理规则,每行定义一个规则。规则通常具有以下格式:
类型 x 路径 权限 用户 组 时间
其中:
- 类型:指定要执行的操作类型。
- x:表示要清理的路径。
- 权限:设置文件或目录的权限。
- 用户:文件或目录的所有者。
- 组:文件或目录的组。
- 时间:指定文件或目录的清理时间。
文件类型配置
以下是tmp.conf文件中可以使用的几种类型,用于配置清理文件的类型:
- v:表示清理目录,并遵循指定的时间限制。例如,
v /tmp 1777 root root 10d表示清理/tmp目录下10天前的所有文件和目录。 - q:与
v类似,但仅清理文件,不清理目录。 - L:创建一个指向另一个文件的链接。
- c:创建一个常规文件,并设置指定的内容。
- C:与
c相同,但如果文件已经存在,则不会更改它。 - d:创建一个目录。
- D:与
d相同,但如果目录已经存在,则不会更改它。 - z:设置指定的目录的SELinux安全上下文。
- Z:与
z相同,但仅当目录不存在时才设置。
清理时间配置
在清理规则中,时间配置可以指定为以下格式:
- d:天数,例如
10d表示10天。 - h:小时,例如
48h表示48小时。 - m:分钟,例如
15m表示15分钟。
示例配置
以下是一个配置示例,展示如何清理特定类型的文件:
# 清理/tmp目录下超过10天的文件和目录
v /tmp 1777 root root 10d
# 清理/var/tmp目录下超过30天的文件和目录
v /var/tmp 1777 root root 30d
# 排除/tmp目录下以tomcat开头的目录
x /tmp/tomcat* # 注意:这行需要自定义添加
注意事项
- 修改
tmp.conf文件后,通常需要重启systemd-tmpfiles-clean.service服务或重启系统以使更改生效。 - 在排除特定目录或文件时,应确保使用正确的路径和模式匹配。
通过这些配置,管理员可以精确控制CentOS 7系统中临时文件的清理行为,以满足特定的需求和偏好。
另外,如果分析java进程时,需要如下文件,如果清理了会报错,但是可以通过手动创建解决。
[itadmin@zht-wximport-uat-app-1 tmp]$ mv .java_pid2986353 .java_pid2986353.old
[itadmin@zht-wximport-uat-app-1 tmp]$ jstack -l 2986353
2986353: Unable to open socket file: target process not responding or HotSpot VM not loaded
The -F option can be used when the target process is not responding




