具有较大 /home 分区的服务器上的磁盘已满

具有较大 /home 分区的服务器上的磁盘已满

我刚刚得到了这个 CentOS 服务器,但我认为我设置错误,因为我只能上传几 GB,然后我开始收到错误,它应该有 ~1TB。

这是 lsblk 的结果

[root@ns4005990 ~]# lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0 931.5G  0 disk
├─sda1   8:1    0  19.5G  0 part /
├─sda2   8:2    0 911.5G  0 part /home
└─sda3   8:3    0   511M  0 part [SWAP]

我猜它使用 sda1 作为主存储,但应该使用 sda 2?

我对linux知之甚少,有什么想法可以修复它,使其使用sda2吗?

[root@ns4005990 ~]# df -h /home
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda2       905G  200M  859G   1% /home

答案1

您有两个文件系统分区,一个安装在/(根分区,sda1)上,包含您的操作系统,另一个安装在/home(主分区,sda2)上,包含您的个人文件。您的主分区远未满,因此一定是您的根分区已满。

在工作站上,大文件通常最终位于用户的主目录中。在服务器上,/home通常很小:大部分数据通常位于/var或下/srv,具体取决于您的服务的设置方式。

运行(或者,如果文件名包含: ,du -xh / | grep G则避免虚假命中)以查看根分区上的哪些目录包含大量数据。将已满的那个移动到。假设大量数据最终位于 下,那么:Gdu -xh / | grep '^[0-9.]*G'/home/srv

  1. 停止所有正在访问 下数据的服务/srv

  2. 运行以下命令:

    mv /srv /home/
    ln -s home/srv /
    
  3. 重新启动所有服务。

这将创建/srv一个指向主分区上目录的符号链接。

答案2

当然,您正在将文件上传到根分区上的某个位置。您是否以 root 用户身份上传? root用户的home比较特殊,并不位于/home分区。

我一直在寻找磁盘空间不足的错误。

以 root 身份运行以下命令并将其发布给我们:

for dir in var usr root; do echo /$dir/; du -sm /$dir/* | sort -n| tail -5; done

这将缩小范围。然后,假设 /var/log 看起来很大:

cd /var/log; du -smc * | sort -n | tail

在每个令人反感的大子目录中重复此操作du -smc * | sort -n | tail,直到找到罪魁祸首。

相关内容