宝塔面板是很多站长管理服务器的常用工具,当面板提示磁盘空间已满时,首先要排查的就是长期积累的网站日志和各类临时文件,这两类文件往往是占用磁盘空间的罪魁祸首。

通过宝塔面板定位大文件
宝塔面板自带了文件管理功能,可以快速找到占用空间较大的目录:
- 登录宝塔面板,点击左侧菜单的文件选项
- 进入根目录后,点击顶部工具栏的排序,选择按文件大小降序排列
- 优先检查
/www/server/nginx/logs/(Nginx日志目录)、/www/server/apache/logs/(Apache日志目录)、/tmp/(系统临时目录)这几个路径 - 查看单个文件大小,超过1G的日志文件基本都可以优先处理
命令行精准查找占用文件
如果面板操作不方便,也可以通过SSH连接服务器,使用Linux命令快速定位大文件:
查找大于100M的文件
执行以下命令可以列出系统中所有大于100M的文件,方便快速定位问题文件:
# 查找根目录下大于100M的文件,按大小排序
find / -type f -size +100M -exec ls -lh {} ; 2>/dev/null | sort -k5 -rh
查看目录占用空间
如果需要知道某个目录的总占用空间,可以使用du命令:
# 查看/www目录各子目录的占用空间,只显示一级子目录 du -h --max-depth=1 /www
安全清理日志与临时文件
清理网站日志
网站日志分为访问日志和错误日志,清理前建议先备份重要的日志内容,避免后续需要排查问题时没有依据:
如果是Nginx服务,日志默认存放在/www/server/nginx/logs/目录,清理命令如下:
# 清空access.log文件内容,不删除文件本身,避免服务报错 > /www/server/nginx/logs/access.log # 清空error.log文件内容 > /www/server/nginx/logs/error.log
如果是Apache服务,日志默认在/www/server/apache/logs/目录,操作方式类似:
# 清空Apache访问日志 > /www/server/apache/logs/access_log # 清空Apache错误日志 > /www/server/apache/logs/error_log
清理临时文件
系统临时目录/tmp/下的文件大多是程序运行时产生的临时数据,清理不会影响业务正常运行:
# 删除/tmp目录下7天前修改的文件 find /tmp -type f -mtime +7 -delete
清理宝塔自身日志
宝塔面板的运行日志也会占用一定空间,清理命令如下:
# 清空宝塔面板日志 > /www/server/panel/logs/request.log
配置自动清理避免再次占满
为了避免后续再次出现日志占满磁盘的问题,可以在宝塔面板中配置日志自动切割和清理:
- 进入宝塔面板的软件商店,找到已安装的Nginx或Apache,点击设置
- 选择日志切割选项,开启自动切割功能,设置保留最近7天的日志即可
- 也可以添加定时任务,定期执行清理临时文件的脚本
定时任务脚本示例,每天凌晨自动清理7天前的临时文件和大于1G的日志:
#!/bin/bash
# 清理7天前的临时文件
find /tmp -type f -mtime +7 -delete
# 清空大于1G的Nginx访问日志
find /www/server/nginx/logs/ -name "access.log" -size +1G -exec sh -c "> {}" ;
将以上脚本保存为clean_disk.sh,在宝塔定时任务中设置为每天凌晨执行即可。