Linux临时文件的清理

系统使用时间长后会产生临时文件(/tmp下),需要清理。但清理的时候不推荐使用rm -rf。这样有时会引起程序的僵死。
        推荐使用tmpwatch命令来进行清理。关于tmpwatch的说明如下:

名称 : tmpwatch 
版本 : 2.8.4 
发布号 : 5 
所属组 : 系统环境/基础 源码包: tmpwatch-2.8.4-5.src.rpm
大小 : 13273 许可类型: GPL
摘要 : 根据文件被访问的时间来删除文件的工具。
简介 :
tmpwatch 工具从指定的目录中递归地搜索,并删除
在指定时间段内没有被访问的文件。tmpwatch 一般
被用来清扫那些用来临时驻留文件的目录(譬如,/tmp)
tmpwatch 忽略符号链接,它不会切换文件系统,而且
只删除空目录和常规文件。
语 法:tmpwatch [-afqv][--test][超期时间][目录...] 
补充说明:执行tmpwatch指令可删除不必要的暂存文件,您可以设置文件超期时间,单位以小时计算。 
参数: 
-a或--all  删除任何类型的文件。 
-f或--force  强制删除文件或目录,其效果类似rm指令的"-f"参数。 
-q或--quiet  不显示指令执行过程。 
-v或--verbose  详细显示指令执行过程。 
-test  仅作测试,并不真的删除文件或目录
实例: sudo /usr/sbin/tmpwatch -afv 3 /tmp (清除/tmp下三小时以内没有使用的文件,并将结果输出)。
效果:
[yyc@localhost ~]$ sudo /usr/sbin/tmpwatch -afv 3 /tmp
removing file /tmp/mapping-yyc
removing file /tmp/orbit-yyc/linc-814-0-1bf6199e48d6e
removing file /tmp/orbit-yyc/linc-7ee-0-74c6cf6b5c2c6
removing file /tmp/orbit-yyc/linc-7fd-0-3ae286a04fa21
removing file /tmp/orbit-yyc/linc-854-0-4e3c22c96ddf
removing file /tmp/orbit-yyc/linc-798-0-1c90b9a4739a7
removing file /tmp/orbit-yyc/linc-7e9-0-56828c5c66be1
removing file /tmp/orbit-yyc/linc-815-0-1e0f6f36a2ee3
removing file /tmp/orbit-yyc/bonobo-activation-server-ior
removing file /tmp/orbit-yyc/linc-850-0-5c3b9d5470bfc
removing file /tmp/orbit-yyc/linc-803-0-5ee49981d2cee
removing file /tmp/orbit-yyc/linc-852-0-5c3b9d54bcd06
removing file /tmp/orbit-yyc/linc-83e-0-716284b294fae
removing file /tmp/orbit-yyc/linc-856-0-5c3b9d547287e
removing file /tmp/orbit-yyc/linc-81d-0-1e0f6f36e88f7
removing file /tmp/orbit-yyc/linc-7fa-0-6c21b504ee8e0
removing file /tmp/orbit-yyc/linc-7f9-0-577d962b48783
removing file /tmp/orbit-yyc/linc-7f6-0-1440368b7d5e4
removing file /tmp/orbit-yyc/linc-81a-0-200a47e1c1117
removing file /tmp/orbit-yyc/bonobo-activation-register.lock
removing file /tmp/orbit-yyc/linc-7f7-0-5950ba2b9774d
removing directory /tmp/orbit-yyc if not empty
removing file /tmp/.esd-500/socket
removing file /tmp/pulse-yyc/pid
removing file /tmp/pulse-yyc/native
removing file /tmp/keyring-Mf0bbZ/socket
removing file /tmp/.X0-lock
removing file /tmp/.X11-unix/X0
removing file /tmp/.ICE-unix/1944
removing file /tmp/ssh-RcIyLY1944/agent.1944
removing file /tmp/.gdmK8P41T
removing file /tmp/gconfd-yyc/lock/ior

### Linux 清理临时文件的方法或命令 在 Linux 系统中,清理临时文件是维护系统性能和磁盘空间的重要任务。以下是几种常用的方法和命令来实现这一目标: #### 使用 `find` 命令清理临时文件 `find` 是一个功能强大的工具,可以按照多种条件查找文件并执行操作。例如,可以通过以下命令删除 `/tmp` 目录中超过 5 天未修改的文件: ```bash find /tmp -type f -mtime +5 -exec rm -f {} \; ``` 此命令会查找 `/tmp` 目录下所有普通文件(`-type f`),并且只保留最近 5 天内修改过的文件,其余文件将被删除[^1]。 如果需要清理更大的文件,比如超过 100MB 的文件,可以使用以下命令: ```bash find /path/to/directory -size +100M -type f -exec rm -f {} \; ``` 这将查找指定目录下的所有文件,并删除大于 100MB 的文件[^4]。 #### 使用 `tmpwatch` 命令 `tmpwatch` 是专为清理临时文件设计的工具。它可以根据文件的最后访问时间来决定是否删除文件。例如,清理 `/tmp` 目录中超过 1 小时未访问的文件,可以使用以下命令: ```bash tmpwatch -d -m 60 /tmp ``` 其中 `-d` 表示递归处理目录,`-m 60` 表示清理超过 60 分钟未访问的文件[^2]。 #### 定期清理日志文件 除了临时文件,日志文件也可能占用大量磁盘空间。可以通过以下命令清理 `/var/log` 目录中的日志文件: ```bash rm -rf /var/log/*.log rm -rf /var/log/*.old ``` 这些命令会删除 `/var/log` 目录下的 `.log` 和 `.old` 文件,从而释放磁盘空间[^3]。 #### 结合 cron 定时任务 为了确保临时文件定期清理,可以将上述命令添加到系统的定时任务中。编辑用户的 crontab 文件: ```bash crontab -e ``` 然后添加一行,例如每天凌晨 2 点执行清理任务: ```bash 0 2 * * * find /tmp -type f -mtime +5 -exec rm -f {} \; ``` 这样可以自动完成临时文件清理工作。 ### 注意事项 在执行任何清理命令之前,请务必确认目标文件夹和清理条件,以避免误删重要数据。此外,对于正在运行的服务可能持续写入 `/tmp` 的情况,建议结合日志轮转机制(如 `logrotate`)来管理文件生命周期。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值