最稳妥方式是用宝塔计划任务执行find命令清理/tmp大文件:#!/bin/sh; find /tmp -type f -size +100m -mtime +1 -delete,配合测试-print、确认session路径、清空回收站及检查/tmp是否为tmpfs。

用宝塔计划任务自动清理 /tmp 大文件最稳妥
直接删 /tmp 下所有东西风险高——可能误杀正在运行的进程临时文件(比如 PHP 上传中、数据库导入中途的临时块),导致 502 或服务中断。宝塔自带的计划任务类型不支持 /tmp,但用 Shell 脚本调 find 是最可控的方式。
- 登录宝塔 → 【计划任务】→ 添加任务 → 类型选
Shell脚本 - 脚本内容填:
#!/bin/sh find /tmp -type f -size +100M -mtime +1 -delete
(+100M避开小临时文件;-mtime +1确保至少存在 1 天,防刚生成就被删) - 执行周期设为每天凌晨 2:30,避开业务高峰和备份时段
- 加
-print测试:把-delete换成-print先跑一次,确认列出的都是可删大文件
rm -f /tmp/sess_* 清 PHP 会话前必须确认路径
大量 sess_* 文件不是“垃圾”,而是 PHP 的 session 存储结果。删错路径会导致用户频繁掉登录、购物车清空等线上问题。宝塔默认用文件存 session,但路径不止一个地方。
- 先查实际路径:在宝塔【PHP 设置】→ 【配置修改】里找
session.save_path值,常见为/tmp或/www/server/php/80/var/session(数字 80 需按你实际 PHP 版本替换) - 只对确认无进程占用的目录执行:
rm -f /tmp/sess_*或rm -f /www/server/php/80/var/session/sess_* - 别在
/var/lib/php/sessions盲删——这是系统 PHP(非宝塔内置)的默认路径,删了不影响宝塔站点,但可能影响系统级服务 - 删完立刻重启对应 PHP 服务:
bt restart php80(版本号对齐)
回收站和 /www/Recycle_bin 是隐藏空间杀手
很多人以为点了“删除”就真没了,其实宝塔的回收站是硬链接保留,/www/Recycle_bin 目录会持续吃空间,且不显示在面板磁盘图表里——这是最常被漏掉的一环。
- 图形操作:左侧【文件】→ 右上角点【回收站】→ 全选 → 【清空】
- SSH 急救(面板卡死时):
rm -rf /www/Recycle_bin/*(先ls -lh /www/Recycle_bin看大小,避免误删) - 注意:清空后不会恢复,且该目录下文件无时间戳,无法按天筛选,只能全清
- 建议每月手动进回收站扫一眼,尤其删过整站或大备份后
清理前务必检查 /tmp 是否挂载为 tmpfs
有些服务器(尤其是云厂商模板镜像)会把 /tmp 挂成内存盘(tmpfs),此时删文件不释放磁盘空间,反而消耗内存。误判会导致排查方向完全错误。
- 执行
df -Th /tmp,如果显示tmpfs类型,说明它占的是内存,不是磁盘 —— 此时清理/tmp对磁盘无意义 - 真正占磁盘的临时文件可能在
/var/tmp(该目录不受 tmpfs 影响,且系统规范要求长期保留) - 若确认是 tmpfs,重点转向
/var/tmp和/www/backup、/www/server/panel/vhost/log这些实打实写磁盘的位置
/tmp 的按钮,不是功能缺失,而是刻意留出判断空间——临时文件的生命周期、所属进程、是否被锁定,都得人工交叉验证。自动脚本只是工具,底下的路径、条件、权限,一个没对上就容易从“释放空间”变成“触发故障”。










