Svn Ubuntu服务器磁盘已满,但仍有剩余空间

Svn Ubuntu服务器磁盘已满,但仍有剩余空间,svn,ubuntu,ubuntu-server,Svn,Ubuntu,Ubuntu Server,我们有一个Ubuntu服务器在运行,我在上面安装了SVN。我们已经使用该服务器4或5个月了,并且我们被分配了具有sudo权限的Appuser 问题是,appuser的空间不足。据我所知,我们有3个不同的磁盘,分别是root、appuser和可移动磁盘。当前级别的快照如下所示 现在,我想知道如何防止这种情况或解决我的问题。我不得不删除一些有用的程序来创建80.6MB的磁盘空间(以前是0) 我能想到的一个选择是,如果可行的话,将SVN移动到root。不幸的是,我不知道怎么做。其他选项可能是在另一个

我们有一个Ubuntu服务器在运行,我在上面安装了SVN。我们已经使用该服务器4或5个月了,并且我们被分配了具有sudo权限的Appuser

问题是,appuser的空间不足。据我所知,我们有3个不同的磁盘,分别是root、appuser和可移动磁盘。当前级别的快照如下所示

现在,我想知道如何防止这种情况或解决我的问题。我不得不删除一些有用的程序来创建80.6MB的磁盘空间(以前是0)

我能想到的一个选择是,如果可行的话,将SVN移动到root。不幸的是,我不知道怎么做。其他选项可能是在另一个目录中创建具有root权限的新用户

长话短说,我需要一种方法来管理分配给我的有限磁盘。有几个服务器像这样,我有这个问题,在每一个和每一个他们

顺便问一下,有没有办法增加/dev/sda3/home(appuser)的磁盘大小?如果我可以添加一些额外的磁盘空间(从根目录或任何其他来源),这将是非常有用的

我能想到的最后一点是,我看不到/var/opt/appuser下的内容,即使我与appuser的连接很困难。只有根才能看到它。这是个问题吗


非常感谢您的提示和指导。

Linux内核支持的本机文件系统(即
extN
系列的文件系统)具有为超级用户保留空间的概念(即具有
UID
0的文件系统)。其思想是,当文件系统似乎已满,并且各种程序因此而开始失败时,超级用户仍然有一定的可用暂存空间来执行恢复任务(想想文本编辑器的缓冲区交换/备份文件,需要复制文件等等)。因此,您在这里看到的是根用户看到的内容与常规用户看到的内容之间的差异

在创建文件系统时,典型的可用空间保留率为5%(这在当时是合理的,但在现在,对于千兆字节或兆兆字节的文件系统,情况并非如此)。幸运的是,这个参数可以在事后进行调优(使用
extN
文件系统的
tune2fs
程序)。在创建一个典型的相当大的
extN
文件系统之后,我通常会手动将其设置为100MiB

要查看保留了多少空间,请执行以下操作:

  • 询问文件系统的当前参数:

    # tune2fs -l /dev/sda1 | grep -Ei 'reserved|block size'
    Reserved block count:     25600
    Block size:               4096
    Reserved GDT blocks:      1012
    Reserved blocks uid:      0 (user root)
    Reserved blocks gid:      0 (group root)
    
    以字节为单位的实际保留空间是
    保留块计数
    ×
    块大小

  • 如果你想的话,调整这个以满足你的需要

    例如,要将其设置为10MIB,可以执行以下操作

    # tune2fs -r $((10*1024*1024/4096)) /dev/sda1
    
    这里4096是块大小,10×1024×1024是10MIB


  • 您是否考虑过查找名为gparted的实用工具来增加分配给appuser的空间

    可以在此处找到解决问题的命令行方法-值得一看:


    在有可用空间的磁盘上创建一个符号链接。请提供详细信息,以免出错。这是一个正在运行的用于生产的服务器谢谢您的详细回答。我试过你的建议。首先,我运行第一个命令,结果是511168个保留块计数和4096个块大小(大约2GB)。然后我用下一个命令将其调整为100MB。但是,磁盘大小没有改变。当我运行第一个命令时,我看到它被设置为100MB。我做错什么了吗?@iso_9001;,那么,如果你做
    df-h~
    作为你的
    appuser
    用户,它显示了多少可用空间(“可用”列)?好的。我有问题。通过您提供的代码,我可以更改root(SDA1),但我需要appuser(SDA3)的空间。我调整了代码,尝试了一次又一次,成功了。以前,aroun 300MB是为appuser保留的。更改后,我分配了100MB,现在可用空间约为275MB。以前,它只有75MB。这将为我们提供一些时间,但这还不够。我们需要更多的空间。有没有办法重新分配预先分配的磁盘大小?例如,我可以从root向appuser传输10GB吗?@iso_9001;,您似乎有点混淆了问题。在单个文件系统上为超级用户保留空间是一回事,但在不同的文件系统之间传递存储空间则完全是另一回事。要实现后者,您必须使用一层虚拟化(通常在Linux上,但也可以使用和
    btrfs
    提供类似概念的IIRC)。@iso_9001;基本上,使用
    LVM
    可以将多个块设备(通常是物理设备,如
    /dev/sdX
    或RAID)分组将虚拟设备划分为逻辑组,然后将其上有文件系统的虚拟设备从这些组中删除。组中的可用空间可以在这些虚拟设备之间任意重新分配;可能会添加新的存储,然后将aqcuired可用空间提供给需要它的虚拟设备等。