一、如何提前发现服务器空间快满了 一般来说我们可以通过以下方式来监控服务器运行状态当有异常时及时给我们反馈以免造成不必要的损失 1、部署监控软件监控服务器状态 2、安装宝塔异常消息推送 二、在得知磁盘快满时改如何排查 1、登录ssh检查确认是哪个分区满了从下图可以看到是 / 分区快满了 2、如何定位是哪些文件把空间占满了 解: 使用
- du -sh *
命令 我们先进入快满的分区
- cd /
然后运行
- du -sh *
发现是www目录占的空间最大
继续上面的操作方法进入 /www 目录,运行 du -sh *命令。 几经周转最后发现是 /www/server/php/73/var/log/php-fpm.log 占用了3.4g 三、清理空间 1、删除占用空间的文件 发现占用空间的文件后一般会认为直接删除文件就行,然而有时候却并不见效 我们删除刚刚找到的php-fpm.log文件(3.4G) 执行删除命令
- rm -f /www/server/php/73/var/log/php-fpm.log
再查看硬盘空间 看上去并没有变化这是为什么呢? 2、查找进程占用的文件 有时候在我们直接删除文件文件其实并真正被删除,比如有进程在占用这个文件时需要等进程释放后空间才会被释放,这里我们有两种方法处理 1)重启占用文件的进程 在面板重启php73 或执行在shell重启即可释放硬盘
- /etc/init.d/php-fpm-73 restart
2)使用lsof命令找占用文件的进程并杀死 执行命令
- lsof |grep deleted
#找到占用删除文件的进程,在找不到有大文件占用空间但空间确实被占满时有奇效
红框内就是我们要找的进程 执行命令
- kill -9 9391
杀死进程
再看空间已经释放了,收工 总结: 找出占用大量空间的文件的命令
- du -sh *
#用于分析当前目录下所有目录、文件分别占用空间的大小 找出占用删除文件的进程
- lsof|grep deleted
#找到占用删除文件的进程,在找不到有大文件占用空间但空间确实被占满时有奇效