更新

更新

运行 Ubuntu 18.04 服务器作为存储服务器

因此,当我运行时,df -h 我看到我的根磁盘已 100% 满,剩余 231MB,但是我一个月前刚刚安装了全新安装,除了 smb 之外没有其他安装。

~$ df -h
Filesystem                     Size  Used Avail Use% Mounted on
udev                           3.8G     0  3.8G   0% /dev
tmpfs                          769M  6.8M  762M   1% /run
/dev/sda2                      219G  208G  231M 100% /
tmpfs                          3.8G     0  3.8G   0% /dev/shm
tmpfs                          5.0M     0  5.0M   0% /run/lock
tmpfs                          3.8G     0  3.8G   0% /sys/fs/cgroup
/dev/loop0                      90M   90M     0 100% /snap/core/8268
/dev/loop1                      90M   90M     0 100% /snap/core/8213
/dev/sda1                      511M  6.1M  505M   2% /boot/efi
/dev/sdd1                      2.7T  2.3T  346G  87% /media/data1

所以我然后运行sudo du -ch --exclude=./media它输出7.3G

有谁能够帮助我?我以前从未见过这个。

:/$ sudo du -ch --exclude=./media
7.3G    .
7.3G    total

sudo ncdu --exclude /media给出相同的结果。我似乎找不到该空间被用在哪里。

sudo du -hs --exclude=./media给出一些文件不活动并且使用相同的 7.3G。

答案1

您可能有一些已删除的文件,这些文件被某些进程保持打开状态。

一种可能性是重新启动(所有进程将终止并关闭其文件,释放空间)。

否则你可以这样做(几乎肯定有更好的方法,但我按照你的要求在 Ubuntu 18.04-LTS 上进行了测试)

find /proc -type l -exec ls -la \{\} \; 2>&1 | grep "/proc/[0-9]*/fd/.*deleted"

这将显示类似以下内容:

lrwx------ 1 root root 64 Nov 18 08:16 /proc/1708/fd/139 -> /run/dovecot/login-master-notifycd7e64fd0dc27812 (deleted)
lrwx------ 1 root root 64 Nov 18 08:16 /proc/1708/fd/172 -> /run/dovecot/login-master-notify5d694b1832885980 (deleted)
lrwx------ 1 root root 64 Nov 18 08:16 /proc/1708/fd/177 -> /run/dovecot/login-master-notify03874675ec133d66 (deleted)
lrwx------ 1 root root 64 Nov 17 20:09 /proc/2160/fd/9 -> /tmp/.ZendSem.3acXWO (deleted)
lrwx------ 1 root root 64 Dec 16 06:39 /proc/10669/fd/9 -> /tmp/.ZendSem.3acXWO (deleted)
lrwx------ 1 root root 64 Dec 16 06:39 /proc/10670/fd/9 -> /tmp/.ZendSem.3acXWO (deleted)
lrwx------ 1 root root 64 Dec 16 06:39 /proc/10671/fd/9 -> /tmp/.ZendSem.3acXWO (deleted)
lrwx------ 1 root root 64 Dec 16 06:39 /proc/10672/fd/9 -> /tmp/.ZendSem.3acXWO (deleted)
lrwx------ 1 root root 64 Dec 17 00:01 /proc/10673/fd/9 -> /tmp/.ZendSem.3acXWO (deleted)
lrwx------ 1 mysql mysql 64 Dec 17 00:01 /proc/24928/fd/5 -> /tmp/ibZsXZWE (deleted)
lrwx------ 1 mysql mysql 64 Dec 17 00:01 /proc/24928/fd/6 -> /tmp/ibY4kIrj (deleted)
lrwx------ 1 mysql mysql 64 Dec 17 00:01 /proc/24928/fd/7 -> /tmp/ibhdYqWX (deleted)
lrwx------ 1 mysql mysql 64 Dec 17 00:01 /proc/24928/fd/8 -> /tmp/ib1PJXXg (deleted)
lrwx------ 1 mysql mysql 64 Dec 17 00:01 /proc/24928/fd/12 -> /tmp/ibuELYLV (deleted)

这告诉我 MySQL 和 dovecot 正在吃“隐藏空间”。所以在这个例子中我可以尝试先重新启动Dovecot,然后重新启动MySQL等,看看什么时候(...服务停止需要非常长的时间,并伴有大量磁盘抖动,之后...) 空间被释放

更新

我在你的问题中忽略了这一点:“除了 smb 之外没有其他安装”。尝试重新启动马上。

您可能启用了 VFS 日志记录,或者处于高调试级别。

这实际上发生在我的 $PFY 身上一次,我们打开调试来检查 Windows 10 怪癖(顺便说一句,早就被 SMB4 解决了),日志已经超过了 5 GB,他只是删除了日志

因此,Samba 不断写入现在不可见的日志文件,该文件一直在默默地增长。当我们指责用户用垃圾填满空间时,我们意识到当大约 50 Gb 消失时发生了什么(他们也在这么做)。

更新1.5

让空间“消失”的一种方法是这样的。

假设您有一个文件服务器并且数据位于/var/media.有大约 250 GB 的文件。然后您决定添加另一个磁盘或通过 RAID 同步加扩展或其他方式替换为更大的磁盘。

因此,在第 2 阶段,您暂时拥有一个空的 /mnt/otherdisk,其中包含 8 TB 的可用空间,您会很高兴复制新磁盘/分区上的 250 GB、权限、ACL 等。

完成后,您显然希望重用旧的配置、脚本、备份等等,因此您安装了新的分区老的目录 - 但忘记先释放它。现在/var/media有 250 GB 的新复制文件和 7.75 GB 的可用空间 - 但原始的 250 GB 仍然低于这一切,并且它们的空间尚未释放。

要释放空间,您需要

umount /var/media && (
    mv /var/media /var/old-media
    mkdir /var/media # create a new "/var/media"
    chown --reference /var/old-media /var/media
    chmod --reference /var/old-media /var/media
    mount /var/media
)

现在,如果/var/old-media确实包含数据,您可以将其内容(它现在可能已过时,但谁知道)与/var/media.

更新2

好吧,重启没有解决任何问题,所以文件必须在那里。可能在lost+found但文件系统现在是干净的,所以他们在那里(但只是检查每一步 - 你也可以发布安装选项吗?)

尝试:

du -kx -d2 / | sort -n

获取磁盘内容(好吧,也media)。这将为您提供所有根子树的大小。如果您看到某个子树比应有的大,当然除外/media,您可以向下钻取。我有一个大的/home/lserni例子:

du -kx -d1 /home/lserni | sort -n

如果空间是仍然莫名其妙地被占用,然后以单一模式重新启动并运行fsck.

我会不是很容易相信你的文件系统如此混乱,以至于它仅有的显示在占用的空间中,但fsck无法修复它!

相关内容