linux系统硬盘爆满处理分析

本文详细介绍了如何在Linux环境下检查和优化磁盘空间,包括使用du命令查看文件夹大小,针对ThinkPHP项目和服务器程序运行时的日志和缓存管理,以及如何处理过大的系统日志、缓存文件和数据库日志。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先介绍下查看某个文件夹大小的linux命令:

cd 进入某个文件夹

du -sh    //读取当前文件夹的大小

du -h --max-depth=1  //读取当前文件夹下面一级每个文件夹的大小

(du -h --max-depth=1   命令会出现一些类似lock->../run/lock这样的带有->符号的文件夹不会显示出来,需要手动du -sh查询)

用du -sh *  也可以查看当前文件夹下面一级每个文件的大小

【针对TP网站项目】

首先如果是linux中放置了thinkphp项目,我这里以TP5为例说明。

调试模式和log记录日志会在网站根目录下的runtime文件夹中生成很多文件,占用空间。

调试模式和日志都可以在config.php文件中设置。

'app_debug'              => false,  //调试模式设置为false

'log'            => [
       
        'type'  => 'test',  //这里设置为test
        'path'  => LOG_PATH,
        'level' => [],
    ],

最后,注意观察runtime文件夹大小即可。

【针对服务器本身程序运行】

用上面命令查看根目录下的每一个文件夹的大小,只看根目录这一级的文件夹。

以我这边查看的举例说明,我这边看到超过500M的根目录下的文件夹有:

/lib      821M (正常500多M左右,不超出太多可以不考虑)

/usr    8.3G (正常1.9G左右,超出太多需要做处理)

/var    5.1G  (正常450-550M左右,超出太多需要做处理)

/www  5.2G  (正常2个多G,超出太多需要做处理)

这里开始一个个文件分析为什么占用这么大空间。

(1)/lib      821M 

根目录下的所程序的共享库目录,不超出太多,不需要做删除和优化处理。

(2)/usr    8.3G 

local  文件夹占用5.6G。其他都是一些必要文件占用的,暂不做考虑。

local里面查看会发现是mysql和mongodb占用了较大空间,这个linux如果装了mongodb和mysql 数据库,也是必须要的数据,正常占用空间。

(3)/var    5.1G 

447M    ./cache
120K    ./spool
4.0K    ./gopher
4.0K    ./local
4.0K    ./opt
4.0K    ./games
20K    ./db
198M    ./lib
8.0K    ./empty
4.0K    ./preserve
4.0K    ./crash
4.0K    ./nis
4.0K    ./adm
108M    ./www
12K    ./tmp
4.0K    ./yp
4.4G    ./log
12K    ./kerberos


--------------------------------------------------

①发现--主要是log占用了4.4G,系统日志一般都存在/var/log下。

处理方案:这个可以在宝塔计划任务中添加切割日志的任务。

(切割日志第二天再查发现只占4K 空间,恢复正常)

----------------------------------------------------------------------------

②发现--cache占了447M,查看cache下文件夹,发现yum文件夹占了444M,再一级级打开发现

/var/cache/yum/x86_64/7/epel   这个占据了268M。正常占据60M左右。

最后发现是这2个文件占据了多余的大小,如果觉得占用不算大,也不必删除。

(4)/www  5.2G 

4.0M    ./wwwroot
3.6G    ./server
117M    ./backup
152K    ./Recycle_bin
466M    ./wwwlogs


可以看到有3.6G在server文件夹中,这个装的是redis,mongodb,php ,nginx,mysql等等程序。

server文件夹再查看,

188M    ./nginx
70M    ./redis
185M    ./php
19M    ./panel
738M    ./mongodb
371M    ./mysql
2.0G    ./data
3.9M    ./cron
13M    ./tomcat
29M    ./phpmyadmin
4.0K    ./phpinfo
8.0K    ./stop
可以看到占用最多的是data文件夹。

而data文件夹内是因为生成下面这样的mysql数据库日志文件导致占用空间变大。

mysql-bin.0000x这种格式是MySQL的主从日志文件,如果你的服务器不需要主从复制的话,日志文件可以删掉。

删除方法:

①mysql -u root -p  //连接linux,执行连接数据库命令

②输入mysql数据库密码

reset master;    //(这里的命令包括;)    

删除后整个data占用了472M,还算正常范围。

----------------------------------------------------------

上面删除主从日志文件后,还会自动生成,可以修改下配置

#关闭主从日志生成或者定时清理日志文件

如果不需要数据库主从复制功能,可以将MySQL的配置文件my.cnf里的参数log-bin=mysql-binbinlog_format=mixed前面加上#号,将其注释掉,然后重启MySQL即可。

如果想保留日志的生成,然后定期自动清理的话,可以将配置文件的expire_logs_days这个参数开启或者添加上,如下图,参数后面的数字代表日志文件保留的天数,宝塔面板默认是保留存放10天。

你可以改成3天也行。上面那个方法设置的2行代码就不要加#了。

【针对上面的my.cnf配置文件位置说明】

1、Windows下MySQL的配置文件是my.ini,一般会在安装目录的根目录。

2、Linux下MySQL的配置文件是my.cnf,一般安装目录的根目录会有my.cnf,但是起作用的是/etc/my.cnf。

要到服务器根目录下的etc文件下修改my.cnf文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值