Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java中的Linux用户磁盘配额检查_Java_Linux_File_Diskspace - Fatal编程技术网

Java中的Linux用户磁盘配额检查

Java中的Linux用户磁盘配额检查,java,linux,file,diskspace,Java,Linux,File,Diskspace,我需要在使用Java的Linux系统上获得自由用户磁盘配额(而不是自由磁盘空间)。在这种情况下,用户磁盘配额可以受到限制(例如2GB),但可用磁盘空间相当大(例如TB) 问题是我有一些java应用程序正在运行,可以写入文件系统。在用户磁盘配额用完之前,我想主动通知用户同样的情况。 我尝试了各种解决方案,但都不起作用 普通Java文件API getFreeSpace()和getUSableSpace()都为我提供了可用磁盘空间,而不是可用磁盘配额 尝试使用Sigar API,但在Sigar中找不到

我需要在使用Java的Linux系统上获得自由用户磁盘配额(而不是自由磁盘空间)。在这种情况下,用户磁盘配额可以受到限制(例如2GB),但可用磁盘空间相当大(例如TB)

问题是我有一些java应用程序正在运行,可以写入文件系统。在用户磁盘配额用完之前,我想主动通知用户同样的情况。 我尝试了各种解决方案,但都不起作用

  • 普通Java文件API getFreeSpace()和getUSableSpace()都为我提供了可用磁盘空间,而不是可用磁盘配额
  • 尝试使用Sigar API,但在Sigar中找不到任何API,这给了我这个
  • 尝试使用RandomAccessFile.setLength(某些\u阈值)检查某些\u阈值空间是否可用。但它在Linux系统上也不起作用。它创建了稀疏文件,实际上创建的文件具有一定的_阈值长度,但不占用实际空间(块)
  • 尝试了配额Linux命令,它可以工作,但我不想使用依赖于系统的命令。这在某些口味上可能有问题
  • 其中一种方法是实际创建一些_阈值大小的文件,但在每x秒之后这样做将不必要地消耗CPU
  • 我的主要要求是有任何方法可以给我自由用户磁盘配额,或者允许我通过创建一些\u阈值大小的文件来检查自由空间,而不需要占用大量CPU。
    请帮忙

    谢谢


    有什么需要帮忙的吗

    你试过了吗?返回此抽象路径名命名的分区上此虚拟机可用的字节数。如果可能,此方法会检查写入权限和其他操作系统限制,因此通常会提供比getFreeSpace()更准确的新数据写入量估计值。是的,我也尝试过,但没有成功。它不考虑用户磁盘配额。我也会在我的问题中加上这个。你试过吗?返回此抽象路径名命名的分区上此虚拟机可用的字节数。如果可能,此方法会检查写入权限和其他操作系统限制,因此通常会提供比getFreeSpace()更准确的新数据写入量估计值。是的,我也尝试过,但没有成功。它不考虑用户磁盘配额。我也将在我的问题中补充这一点。