我刚刚得到了这个 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
则避免虚假命中)以查看根分区上的哪些目录包含大量数据。将已满的那个移动到。假设大量数据最终位于 下,那么:G
du -xh / | grep '^[0-9.]*G'
/home
/srv
停止所有正在访问 下数据的服务
/srv
。运行以下命令:
mv /srv /home/ ln -s home/srv /
重新启动所有服务。
这将创建/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
,直到找到罪魁祸首。