生产环境linux磁盘满了清理方案

在一次线上环境中,突然各种中间件都挂了,随即上线上环境查看,发现根目录占用达到100%。

使用 df -h 查看如下:


[root@h /]# df -h
Filesystem            Size  Used Avail Use% Mounted on
udev                  7.9G     0  7.9G   0% /dev
tmpfs                 1.6G  3.5M  1.6G   1% /run
/dev/vda1              59G   56G     0 100% /
tmpfs                 7.9G  4.0K  7.9G   1% /dev/shm
tmpfs                 5.0M  4.0K  5.0M   1% /run/lock
tmpfs                 7.9G     0  7.9G   0% /sys/fs/cgroup
/dev/mapper/vg0-vol0 1000G   14G  937G   2% /data
tmpfs                 1.6G     0  1.6G   0% /run/user/0

发现确实磁盘满了,而且满的很彻底。系统盘占用100%,估计什么服务都跑不动了。

/dev/vda1 59G 56G 0 100% /

1、此时我们先去日志目录查看,/var/log是系统日志目录,可以经常性的关注下,大容量日志尽早删除。对待进程不停对文件写日志的操作,要释放文件占用的磁盘空间,最好的方法是在线清空这个文件,可以通过如下命令完成:

[root@h ~]# echo "" >/var/log/syslog

通过这种方法,磁盘空间不但可以马上释放,也可保障进程继续向文件写入日志,这种方法经常用于在线清理Apache、Tomcat、Nginx等Web服务产生的日志文件。当然我们还可以这样:

1、删除七天以前的日志 (谨慎删除mysql的日志,会启动不了mysql)
find /var/log/ -mtime +7 -name "*log" -exec rm -rf {} \;

2、删除七天以前的文件(谨慎)
find /var/log/ -mtime +7 -name -exec rm -rf {} \;

2、我们可以还可以去/tmp目录查看,/tmp是临时目录,该文件夹中的内容一般不会删除,以redhat为例,系统自动清理/tmp文件夹的默认时限是30天。30天不访问的/tmp下的文件会被系统自动删除的。/tmp-临时文件目录,能够被任何用户,任何程序访问,一般用来存放程序的临时文件,所以应该定期清理一下。FHS甚至建议在开机时,应该要将/tmp下的数据都删除,临时目录还有/var/tmp。
Linux有两个公知的临时目录:/tmp与/var/tmp,这两个目录被用户用于存储临时性的文件,亦经常被程序读写用户存储临时性数据。

3、如果上面两个方法都用到了还无法让服务器正常运行的话,则需要去看看安装的中间件的日志文件占用大小了,先查看大文件:

$ cd /
$ find . -type f -size +500M  -print0 | xargs -0 du -h
或者更精准的指定
$ find / -type f -name "*.log" -size +500M -print0 | xargs -0 du -h
5.6G ./var/log/syslog.1
6.7G ./var/log/syslog
...

当我们发现日志log字眼的大文件,我们可以毫不留情的删掉

还可以通过 du -h|grep G命令查看所有的大文件,筛选出以 “G” 为单位大小的行,这样可以方便地找到目录或文件的磁盘空间使用量达到几个GB的项。当找到服务器安装的一些中间件(nacos、rabbitmq、es等)的日志文件也是可以删除的。

du -h --max-depth=1可以查看当前路径所有目录文件大小

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值