如何清理Linux云服务器的系统盘?

  • 发布时间:2021-11-21 10:18:29
  • 阅读次数:1596

Linux云服务器的系统盘占满分两种情况,block占满和inode占满。我们先通过SSH工具远程登录上云服务器,然后分别执行下面两个命令,看看自己属于哪种情况。

block占满,执行命令: df -vh

inode 占满,执行命令: df -ih

block占满的处理

需要用到的命令如下:

  • ll 列出当前目录下的文件
  • df –vh 查看磁盘使用情况
  • cd 目录名 进入某个目录
  • du -sh * 统计当前目录内的文件大小
  • rm -rf 文件名|目录 删除某个文件或者目录(操作不可逆,删除前请确认文件是否无用)
  • ls | grep -Ev 'home'|xargs du -sh 统计除home目录外其它目录文件大小

1、执行df -vh命令,查看是哪个分区占满

2、执行cd和du命令,查看是哪个目录最大

3、继续执行cd和du命令,找到最大的文件或者目录。

4、找到最大的文件,通过rm -rf 文件名 命令删除

注意事项:

  • 删除操作前请确认文件是否无用,确认后再删除。如果文件都有用,请考虑升级硬盘大小。
  • 如果cd命令报错请查看进入的是目录还是文件,可通过ll命令查看,目录名为蓝色,文件名为白色。
  • 如果du命令长时间没有反应,可用Ctrl + C结束命令,然后执行ll命令,进入du命令最后显示目录的下个目录,继续查找。

inode占满的处理

需要用到的命令和脚本如下:

  • ll 列出当前目录下的文件
  • df –ih 查看磁盘Inode使用情况
  • cd 目录名 进入某个目录
  • du -ah * 统计当前目录内及子目录的文件大小
  • rm -rf 文件名|目录 删除某个文件或者目录(操作不可逆,删除前请确认文件是否无用)
  • ls |xargs rm -rf 删除当前目录下的全部文件
  • check_inode_counts.pl 脚本快速统计目录下每个目录占用Inode大小
  • find */ ! -type l | cut -d / -f 1 | uniq -c 统计当前目录下每个目录占用Inode大小(执行慢默认不使用此命令)

1、使用df -ih 查看是哪个分区占满

2、下载check_inode_counts.pl脚本执行,依次执行以下命令:

wget http://downinfo.myhostadmin.net/check_inode_counts.txt
mv check_inode_counts.txt check_inode_counts.pl
perl check_inode_counts.pl /

继续执行等于50000的目录,如果没有就是最大值目录占用高。 比如perl check_inode_counts.pl /统计到/home目录等于50000,继续执行perl check_inode_counts.pl /home,一层目录一层目录的执行找到最大占用,如图。

3、继续查找,直到找到占用inode对应较大目录,注意一般都是多个目录。执行ll命令后会出现很多类似的文件。

4、执行cat命令,查看文件是否异常,异常则删除,不异常再继续查找。

5、删除此目录下的全部异常文件

注意事项:

  • 如果当前目录下文件全部正常,请执行cd ../返回上层目录,继续上述方法查找。
  • 删除操作前请确认文件是否无用,确认后再删除。如果文件都有用,请考虑升级硬盘大小。
  • 删除命令如果卡死可以使用 find . -name ".html"|xargs -t -n5 rm -rf 命令,其中 ".html" 是上面看见的异常文件后缀名。
  • 以上方法只在找到问题并处理,您需要自行分析一下产生的原因。如果是备份或者日志占满,需要修改或关闭备份或者日志;如果是木马程序生成大量文件,除删除文件外还需要找到程序漏洞并修复。

【全文完】

< 上一篇:如何在Windows云服务器上设置IPv6地址? 下一篇:iptables防火墙快速入门指南 >