CentOS里tmp目录自动清除和tmpwatch命令

本文介绍Linux系统中tmp目录的自动清理机制及tmpwatch命令的使用方法。系统默认每日处理一次tmp目录,通过tmpwatch工具删除长时间未访问的文件。文章详细解释了tmpwatch的配置与参数选项。
 tmp目录自动清除和tmpwatch命令

习惯性的将一些临时文件放在tmp目录下,让其自然删除。同时,为了保证tmp目录不爆满,系统默认情况下每日会处理一次tmp目录文件,原理就是使用了tmpwatch。在系统最小安装情况下,这个功能是没有安装的。 安装:

# yum install tmpwatch.x86_64

安装后会在/etc/cron.daily/目录下生成一个tmpwatch文件。内容如下:

# cat /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

从代码中可看出,tmp目录会删除240小时未访问过的文件。

tmpwatch工具从指定的目录中递归地搜索并删除指定的目录中一段时间未访问的文件。

tmpwatch参数说明:

-u, --atime 基于访问时间来删除文件,默认的。
-m, --mtime 基于修改时间来删除文件。
-c, --ctime 基于创建时间来删除文件,对于目录,基于mtime。
-M, --dirmtime 删除目录基于目录的修改时间而不是访问时间。
-a, --all 删除所有的文件类型,不只是普通文件,符号链接和目录。
-d, --nodirs 不尝试删除目录,即使是空目录。
-d, --nosymlinks 不尝试删除符号链接。
-f, --force 强制删除。
-q, --quiet 只报告错误信息。
-s, --fuser 如果文件已经是打开状态在删除前,尝试使用“定影”命令。默认不启用。
-t, --test 仅作测试,并不真的删除文件或目录。
-U, --exclude-user=user 不删除属于谁的文件。
-v, --verbose 打印详细信息。
-x, --exclude=path 排除路径,如果路径是一个目录,它包含的所有文件被排除了。如果路径不存在,它必须是一个绝对路径不包含符号链接。
-X, --exclude-pattern=pattern 排除某规则下的路径。
<think>好的,用户想知道如何在CentOS系统中安全地清理/tmp目录。首先,我需要回忆一下关于CentOS系统管理方面的知识,特别是关于临时目录的处理方法。/tmp目录通常用来存放临时文件,但长时间不清理可能会占用磁盘空间,不过系统一般会有自动清理机制,但用户可能想手动操作或者调整设置。 根据引用[1],用户使用的是CentOS 6.5,这可能影响清理方法,因为不同版本的CentOS可能有不同的机制。比如在CentOS 7及以上,systemd的tmpfiles会管理/tmp,而CentOS 6可能使用其他方式。我需要确认CentOS 6的默认行为。 首先,系统可能有一个定时任务来清理/tmp,比如通过cron运行tmpwatch或者tmpreaper。需要检查是否存在这样的任务。另外,/tmp目录的清理策略可能在/etc/cron.daily/tmpwatch或者/etc/default/rcS中配置。用户可能需要手动调整这些配置,比如修改保留文件的时间。 安全清理的步骤可能包括:1. 检查当前/tmp目录的使用情况;2. 确定哪些文件可以安全删除;3. 使用适当的命令或工具进行清理,避免删除正在使用的文件。需要注意的是,直接删除/tmp下的文件可能影响正在运行的应用程序,所以最好在清理前确认有重要进程在使用这些文件。 另外,可以建议用户使用tmpwatch或find命令来删除旧文件。例如,tmpwatch --test 24 /tmp可以预览删除24小时未访问的文件。使用find命令的话,比如find /tmp -type f -atime +7 -delete,但需要谨慎设置时间参数,避免删除过新的文件。 还要提醒用户,某些服务可能会在/tmp中存放socket或PID文件,删除这些可能导致服务异常。因此,最好在系统负载低的时候执行清理,并确认有关键服务依赖/tmp中的文件。 最后,如果用户希望自动化清理,可以设置cron任务定期执行清理命令,同时参考系统文档确保配置正确。根据引用[3],用户可能已经有部署MySQL等应用,需要特别检查这些应用是否在/tmp存放重要数据,避免误删。</think>在CentOS系统中安全清理`/tmp`目录的方法如下: --- ### 1. **理解`/tmp`目录的默认清理机制** CentOS系统默认通过`tmpwatch`工具定期清理`/tmp`目录,其策略为: - 文件若在**10天**内未被访问,则会被自动删除[^1]。 - 清理任务通过`cron`调度,脚本位于`/etc/cron.daily/tmpwatch`。 --- ### 2. **手动安全清理步骤** #### (1) 使用`tmpwatch`命令 ```bash # 预览将被删除的文件(不实际执行删除) tmpwatch --test 24 /tmp # 实际删除24小时内未访问的文件 tmpwatch 24 /tmp ``` #### (2) 使用`find`命令(更灵活) ```bash # 删除7天未访问的普通文件 find /tmp -type f -atime +7 -delete # 删除空目录(避免残留) find /tmp -type d -empty -delete ``` --- ### 3. **调整自动清理策略** 若需修改默认清理周期(例如改为3天): ```bash # 编辑tmpwatch配置文件 vi /etc/cron.daily/tmpwatch ``` 将参数改为: ```bash /usr/sbin/tmpwatch -x /tmp/.X11-unix -x /tmp/.XIM-unix -x /tmp/.font-unix -x /tmp/.ICE-unix -x /tmp/.Test-unix 24 /tmp ``` --- ### 4. **注意事项** - **避免删除活跃文件**:清理前可通过`lsof | grep /tmp`检查是否有进程占用文件。 - **关键目录保护**:`tmpwatch`已默认跳过X11、字体服务器等系统目录(如`/tmp/.X11-unix`)。 - **服务依赖**:如MySQL可能使用`/tmp/mysql.sock`,清理时需确认服务状态[^3]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值